我使用Scala,我希望将RDD(String, List[String])
转换为RDD(String, String)
,将列表中的单个元素转换为行,例如
cat List[2,4]
dog List[6,5,4]
应转换为
cat 2
cat 4
dog 6
dog 5
dog 4
答案 0 :(得分:6)
每当通货膨胀时,平面地图'非常有用
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)
输出
(cat,2)
(cat,4)
(dog,6)
(dog,5)
(dog,4)