【发布时间】:2015-10-31 15:06:55
【问题描述】:
我有一个 RDD RDD1 具有以下架构:
RDD[String, Array[String]]
(我们称之为RDD1)
我想创建一个新的 RDD RDD2,每行为 RDD[String,String],键和值属于 RDD1。
例如:
RDD1 =Array(("Fruit",("Orange","Apple","Peach")),("Shape",("Square","Rectangle")),("Mathematician",("Aryabhatt"))))
我希望输出如下:
RDD2 = Array(("Fruit","Orange"),("Fruit","Apple"),("Fruit","Peach"),("Shape","Square"),("Shape","Rectangle"),("Mathematician","Aryabhatt"))
有人可以帮我处理这段代码吗?
我的尝试:
val R1 = RDD1.map(line => (line._1,line._2.split((","))))
val R2 = R1.map(line => line._2.foreach(ph => ph.map(line._1)))
这给了我一个错误:
错误:值映射不是 Char 的成员
我了解这是因为该地图功能仅适用于RDDs,而不适用于每个string/char。请帮助我在Spark 中使用嵌套函数来实现此目的。
【问题讨论】:
标签: scala apache-spark rdd