[英]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.