我有RDD[(String, Array[String])]
形式的PairRDD。我想展平这些值,以便我有一个RDD[(String, String)]
,其中第一个RDD的Array [String]中的每个元素都成为第二个RDD中的专用元素。
例如,我的第一个RDD有以下元素:
("a", Array("x", "y"))
("b", Array("y", "z"))
我想要的结果是:
("a", "x")
("a", "y")
("b", "y")
("b", "z")
我该怎么做? flatMapValues(f: Array[String] => TraverableOnce[String])
似乎是正确的选择,但我需要将其用作参数f
?
答案 0 :(得分:4)
要获得所需的结果,请执行以下操作:
val rdd1: RDD[(Any, Array[Any])] = ...
val rddFlat: RDD[(Any, Any)] = rdd1.flatMapValues(identity[Array[Any]])
结果看起来像问题中要求的结果。