我有一個形式爲RDD[(String, Array[String])]
的PairRDD。我想要將這些值展平,以便我有一個RDD[(String, String)]
,其中第一個RDD的Array [String]中的每個元素都將成爲第二個RDD中的專用元素。如何將(String,Array [String])的RDD拆分爲數組中的每個項目的(String,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
?
只要做'rdd.flatMapValues(x => x)' – ale64bit
@kaktusito正確的感謝;我更新了這個問題,因爲我實際上正在尋找傳入flatMapValues()的參數。你已經乾淨了。 – Carsten
@Carsten我會使用'identity'而不是'x => x'。 scala編譯器可能足夠聰明,可以認識到這是「身份」,但也許不是,然後你創建一個新的對象。 – 2rs2ts