У меня есть набор данных, как показано ниже.
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
Есть ли способ, которым я могу добавить идентификаторы?