如何在值上膨胀对RDD?

use*_*660 1 scala apache-spark

我使用Scala和我想要一个转换RDD(String, List[String])RDD(String, String)具有单独的元素列表作为行,如

cat List[2,4]
dog List[6,5,4]
Run Code Online (Sandbox Code Playgroud)

应转换为

cat 2
cat 4
dog 6
dog 5
dog 4
Run Code Online (Sandbox Code Playgroud)

Kno*_*uch 6

每当充气"flatMap"时非常有用

val x = List(("cat", List(2, 4)), ("dog", List(6, 5, 4)))
val rdd = sc.parallelize(x)
val y = rdd.flatMap{ case(x, y) => y.map((x, _))}
y.collect().foreach(println)
Run Code Online (Sandbox Code Playgroud)

产量

(cat,2)
(cat,4)
(dog,6)
(dog,5)
(dog,4)
Run Code Online (Sandbox Code Playgroud)