LLLit: Изучение и практика программирования

Выравнивание строк в Spark вместе с существующими столбцами

У меня есть набор данных, как показано ниже.

id1   k1, k2, k3, k4
id2   k1, k2
id3   k2, k3
id4   k4

Я хочу подсчитать количество строк, в которых присутствует каждый из моих «k», а также идентификаторы, для которых он присутствует.

вывод:

k1  2    id1, id2
k2  3    id1, id2, id3
k3  2    id1, id3
k4  2    id1, id4

Я использовал взорвать, а затем сгруппировать по клавишам, и я получаю следующий вывод.

val newlines = sparkSession.read.textFile(s3Path)
.map(ke => {
            val split = ke.split("\t")
            (split(0), split(1).toString.split(", "))
    })

val myDF = newlines.withColumn("Key", explode($"_3")).groupBy(("Key"))
    .agg(count("Key"))

k1  2    
k2  3   
k3  2 
k4  2

Есть ли способ, которым я могу добавить идентификаторы?


Ответы:


Новые материалы

Как развивается смешанно-целочисленное программирование, часть 7
Унифицированная техника раннего завершения для первично-двойственных алгоритмов в смешанно-целочисленном коническом программировании (arXiv) Автор : Ювэнь Чэнь , Кэтрин Нин , Поль Гулар..

Как научить модель Keras распознавать текст переменной длины
Я некоторое время играл с официальным примером Keras image_ocr.py и хочу поделиться своими выводами в этом посте. В официальном примере выполняется только обучение модели, но отсутствует..

Практическая пакетная нормализация
История начинается после использования инициализации He вместе с ELU (или любым вариантом ReLU) может значительно снизить опасность проблем с исчезающими/взрывающимися градиентами в начале..

Поэзия онлайн-кодирования: путешествие пикселей и страсти
В мире, наполненном инновациями, онлайн-обучение программированию становится холстом, на котором обретает форму полотно вашей мечты. Это больше, чем просто создание строк кода; это сродни..

Обработка изображений с помощью Python - размытие и повышение резкости для начинающих
Как применить ядра свертки к цветным изображениям? В этой статье мы обсудим, как применять ядра размытия и повышения резкости к изображениям. Эти базовые ядра составляют основу многих более..

Ограничение скорости в .NET Core 7 Web API
Что такое ограничение скорости? Ограничение скорости — это процесс, используемый для ограничения количества запросов, разрешенных для определенного ресурса в указанном временном окне. .NET..

Стабильная Diffusion 1.0 выдаёт более красивые картинки, чем SD 2.1?! Почему?
Удивительные открытия, которые я сделал недавно. Смотрите в видео: https://youtu.be/PakgD6FewoU Есть одно логичное объяснение — что у вас?