簡體   English   中英

通過展平元組的值來轉換RDD

[英]Transforming a RDD by flattening the values of the tuple

我正在盡力理解Apache Spark中的map-reduce功能,而且我仍然堅持扁平化(不確定這是否是正確的術語)RDD。

我在scala中有以下RDD結構:

RDD[Tuple2[Long, Tuple2[String, Array[String]]]]

這方面的一個例子是:

(1, ("a", ["alice", "bob"]))
(2, ("b", ["charlie", "dave"]))
(3, ("a", ["edward"]))

我想將此RDD轉換為以下類型:

RDD[Tuple2[Long, Tuple2[String, String]]]

看起來像:

(1, ("a", "alice"))
(1, ("a", "bob"))
(2, ("b", "charlie"))
(2, ("b", "dave"))
(3, ("a", "edward"))

不幸的是,我無法通過map / flatMap函數了解這種操作。 這種轉變是否可能,如果是這樣,怎么樣?

提前致謝!

完全可能:

rdd.flatMap { case (k, (x, ys)) => ys.map(y => (k, (x, y))) } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM