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

Sorting values of an array type in RDD using pySpark

我有一个包含如下值的 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]  ))