我有一個包含如下值的 RDD:
[
(Key1, ([2,1,4,3,5],5)),
(Key2, ([6,4,3,5,2],5)),
(Key3, ([14,12,13,10,15],5)),
]
我需要像這樣對陣列部分的值進行排序:
[
(Key1, ([1,2,3,4,5],5)),
(Key2, ([2,3,4,5,6],5)),
(Key3, ([10,12,13,14,15],5)),
]
我發現 Spark 有兩種排序方法:sortBy和sortbyKey。我試過這樣的sortBy方法:
myRDD.sortBy(lambda x: x[1][0])
但不幸的是,它根據陣列的第一個元素對資料進行排序,而不是對陣列元素本身進行排序。
此外,這sortByKey似乎無濟于事,因為它只是根據鍵對資料進行排序。
我怎樣才能實作排序的RDD?
uj5u.com熱心網友回復:
嘗試這樣的事情:
rdd2 = rdd.map(lambda x: (x[0], sorted(x[1]), x[2] ))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345649.html
上一篇:將spark資料幀串列保存到pyspark中的多個csv檔案
下一篇:AmazonDeequ(Spark Scala)-java.lang.NoSuchMethodError:'scala.Optionorg.apache.spark.sql.catalyst
