apache-spark - PySpark - 如何按 ResultIterable 中的值排序?
问题描述
我正在构建一个 RDD:
kk = preRatings.filter(lambda a:a.rating>0).map(lambda b:(b.user,(b.product,b.rating)))
如何按评分值(desc)排序并使用格式(用户,(产品,评分)获得前 10 个结果?
顺便说一句,我指的是这个 scala 代码,不知道作者在里面试图做什么case
preRatings
.filter(_.rating > 0)
.map(rating => (rating.user,(rating.product, rating.rating)))
.groupByKey()
.map{ case (uid,recs) =>
UserRecs(uid,recs.toList.sortWith(_._2 >_._2)
.take(10)
.map(x => Recommendation(x._1,x._2)))
}.toDF()
具体来说,这一行:
recs.toList.sortWith(_._2 >_._2)
与相同的_2进行比较意味着什么?
解决方案
推荐阅读
- python-3.x - 在 Altair 中的 choropleth 上覆盖状态轮廓
- chapel - 使用多个语言环境的矩阵乘法
- python - 从数据框创建数据集,以便每个属性组合具有相同数量的正/负样本
- javascript - 如何在启用 Windows 身份验证的情况下发送 API 请求?
- if-statement - 在 Rust 程序中,当条件为“假”时执行“if”语句,如何理解它?
- javascript - Javascript:如何用 % char 替换字符串中的子字符串
- c# - 防止对象类作为项目重复输入到列表框
- css - 字体真棒unicode不显示
- sql - 使用两个表中的行数更新表列
- ios - iOS Swift->蓝牙设备在设置->蓝牙->设备下不显示“I”图标