【发布时间】:2015-06-16 23:42:08
【问题描述】:
寻找一些有关如何使用 spark 在 scala 中处理某些问题的帮助。
我有:
type DistanceMap = HashMap[(VertexId,String), Int]
这以 RDD 的形式构成了我的数据的一部分:
org.apache.spark.rdd.RDD[(DistanceMap, String)]
简而言之,我的数据集如下所示:
({(101,S)=3},piece_of_data_1)
({(101,S)=3},piece_of_data_2)
({(101,S)=1, (100,9)=2},piece_of_data_3)
我想要做的是平面映射我的距离图(我可以做),但同时对于每个平面映射的DistanceMap 想要保留与之关联的字符串。所以我的结果数据看起来像这样:
({(101,S)=3},piece_of_data_1))<br>
({(101,S)=3},piece_of_data_2))<br>
({(101,S)=1},piece_of_data_3))<br>
({(109,S)=2},piece_of_data_3))<br>
如前所述,我可以使用以下方法对第一部分进行平面映射:
x.flatMap(x=>x._1).collect.foreach(println))
但我不知道如何保留原始数据第二部分中的字符串。
【问题讨论】:
-
你的意思是
({(100,9)=2},piece_of_data_3))而不是第二个({(101,S)=1},piece_of_data_3)) -
是的,抱歉,我想要的剪切和粘贴错误数据应该是:({(101,S)=3},piece_of_data_1)) ({(101,S)=3},piece_of_data_2)) ( {(101,S)=1},piece_of_data_3)) ({(109,S)=2},piece_of_data_3))
标签: scala hashmap apache-spark flatmap