pyspark sortBy和sortByKey

sortBy和sortByKey都有keyfunc函数,两者应用的对象不同
sortBy应用到整个Row,而sortByKey应用到key上。

在一次排序中,我的row类似(x,(1,1,1,b))
我想用b作为排序的依据,则应该写作rdd.sortBy(keyfunc=lambda x: x[1][3])
而我不小心写成了rdd.sortByKey(keyfunc=lambda x: x[1][3]),结果报错ValueError: too many values to unpack,这是因为key为x并不能取x[1][3]

你可能感兴趣的:(大数据,python,spark)