簡體   English   中英

將RDD每行的鍵值對列表轉換為每行的單個鍵值

[英]Convert List of key-value pairs in each row of RDD to single key-value in each row

我有一個 RDD 作為

List((a,b),(b,c))
List((d,e))

我怎樣才能得到它

(a,b)
(b,c)
(d,e)

我試過 RDD.flatMap(x => x),這不起作用,因為有一個鍵值對列表而不僅僅是一個值列表。

rdd.flatMap(identity)會將RDD[List[(String, String)]]RDD[(String, String)]

scala> val rdd = sc.parallelize(List(List(("a","b"),("b","c")), List(("d","e"))))
...
rdd: org.apache.spark.rdd.RDD[List[(String, String)]] = ParallelCollectionRDD[2] at parallelize at <console>:13
scala> rdd.flatMap(identity)
res2: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[3] at flatMap at <console>:14
scala> res2.collect()
...
res3: Array[(String, String)] = Array((a,b), (b,c), (d,e))

這對於任何RDD[List[T]] ,無論T的形狀如何。 如果您分享更多有關您嘗試做的事情的信息,可能會提供更多幫助。

暫無
暫無

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

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