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]