簡體   English   中英

使用spark-shell進行排序和合並

[英]Sorting and Merging Using spark-shell

我在scala中有一個字符串數組

Array[String] = Array(apple, banana, oranges, grapes, lichi, anar)

我已經將其轉換成這樣的格式:

Array[(Int, String)] = Array((5,apple), (6,banana), (7,oranges), (6,grapes), (5,lichi), (4,anar))

我想要這樣的輸出:

Array[(Int, String)] = Array((4,anar), (5,applelichi), (6,bananagrapes), (7,oranges))

表示排序后,我想將具有相同鍵的單詞加在一起。 我已經完成排序。 這是我的代碼:

val a = sc.parallelize(List("apple","banana","oranges","grapes","lichi","anar"))
val b = a.map(x =>(x.length,x))
val c = b.sortBy(_._2)

您可以使用groupByKey()進行此操作,然后將您獲得的列表與mkString合並。 使用您所擁有的小例子(a,b相同):

val c = b.groupByKey().map{case (key, list) => (key, list.toList.sorted.mkString)}.sortBy(_._1)

c.collect() foreach println

這會給你:

(4,anar)
(5,applelichi)
(6,bananagrapes)
(7,oranges)

暫無
暫無

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

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