来自pyspark.RDD的takeOrdered方法从RDD获取N个元素,这些元素按升序排列或由可选键函数指定,如pyspark.RDD.takeOrdered所述 . 该示例使用一个键显示以下代码:
>>> sc.parallelize([10, 1, 2, 9, 3, 4, 5, 6, 7], 2).takeOrdered(6, key=lambda x: -x)
[10, 9, 7, 6, 5, 4]
是否也可以定义更多的密钥,例如x,y,z是否有3列数据?
键应该是不同的顺序,例如x = asc,y = desc,z = asc . 这意味着如果两行的第一个值x相等,那么第二个值y应该按降序使用 .
1 回答
对于数字,您可以写:
对于其他对象,您可以定义某种类型的记录类型并定义您自己的一组丰富的比较方法:
然后:
在实践中只使用SQL: