现在我有以下格式的RDD
var activeMedDup = ActiveMedications?.Select($"convert(int,strDDI) = '{dup.DDI}'")
我试图将它转换为3个键值对,如(int,1)。
我可以通过使用3个地图函数然后将它们连接在一起来实现这一点,但它绝对不是实现它的最佳方式,
也可以通过使用case我可以生成((int,1),(int,1),(int,1))的列表,但是如何生成List of(int,1)?
答案 0 :(得分:2)
也许你想要flatMap
?
rdd.flatMap { case ((x, y), z) => List((x, 1), (y, 1), (z, 1)) }
上面的代码生成RDD[(Int, Int)]
,将RDD中的每个嵌套元组扩展为三个独立的RDD元素。
答案 1 :(得分:1)
它不应该采用三个地图功能,而是一个地图功能,如下所示
inputRDD.map({case ((x,y),z) => ((x,1),(y,1),(z,1))})