use*_*475 7 python apache-spark rdd
原始数据集是:
# (numbersofrating,title,avg_rating)
newRDD =[(3,'monster',4),(4,'minions 3D',5),....]
Run Code Online (Sandbox Code Playgroud)
我想在newRDD中选择前N个avg_ratings.我使用下面的代码,它有一个错误.
selectnewRDD = (newRDD.map(x, key =lambda x: x[2]).sortBy(......))
TypeError: map() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)
预期数据应为:
# (numbersofrating,title,avg_rating)
selectnewRDD =[(4,'minions 3D',5),(3,'monster',4)....]
Run Code Online (Sandbox Code Playgroud)
zer*_*323 14
您可以使用top或takeOrdered使用key参数:
newRDD.top(2, key=lambda x: x[2])
Run Code Online (Sandbox Code Playgroud)
要么
newRDD.takeOrdered(2, key=lambda x: -x[2])
Run Code Online (Sandbox Code Playgroud)
请注意,top元素按降序和takeOrdered升序排列,因此key在两种情况下函数都不同.
| 归档时间: |
|
| 查看次数: |
17574 次 |
| 最近记录: |