apache-spark - 使用 pySpark 对 RDD 中数组类型的值进行排序

标签 apache-spark sorting pyspark rdd

我有一个包含如下值的 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 有两种排序方法:sortBysortbyKey。我尝试了像这样的 sortBy 方法:

myRDD.sortBy(lambda x: x[1][0])

但不幸的是,它根据数组的第一个元素对数据进行排序,而不是对数组本身的元素进行排序。

此外,sortByKey 似乎没有帮助,因为它只是根据键对数据进行排序。

如何实现RDD的排序?

最佳答案

尝试这样的事情:

rdd2 = rdd.map(lambda x: (x[0], sorted(x[1]), x[2]  ))

关于apache-spark - 使用 pySpark 对 RDD 中数组类型的值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69800935/

相关文章:

java - Hadoop 2.6 连接到 ResourceManager at/0.0.0.0 :8032

scala - 保存到分区的 Parquet 文件时实现并发

python - 排序和唯一与集合

python - 如何将大型 python 模型应用于 pyspark-dataframe?

apache-spark - 如何在 Spark Structured Streaming 中指定批处理间隔?

apache-spark - 线程 "main"java.lang.NoClassDefFoundError : com/typesafe/config/ConfigFactory 中的异常

scala - 如何根据邻接矩阵高效更新权重?

algorithm - 什么是Youtube评论系统排序/排名算法?

javascript - jQuery 按顺序对数组值进行排序

apache-spark - pyspark session 是否存在 spark.implicits?