3
我正在使用Spark 1.5.0。我有以下的列火花数据帧:火花数据帧分组,排序和选择一组列的顶部行
| user_id | description | fName | weight |
我想要做的是选择前10名和后10行(根据列加权的值,这是数据类型双)每用户。我如何使用SparkSQL或数据框操作来做到这一点?
例如。为了简单起见,我只选择每个用户的前2行(基于重量)。我想对绝对重量的值进行分类。
u1 desc1 f1 -0.20
u1 desc1 f1 +0.20
u2 desc1 f1 0.80
u2 desc1 f1 -0.60
u1 desc1 f1 1.10
u1 desc1 f1 6.40
u2 desc1 f1 0.05
u1 desc1 f1 -3.20
u2 desc1 f1 0.50
u2 desc1 f1 -0.70
u2 desc1 f1 -0.80
这里是希望的O/P:
u1 desc1 f1 6.40
u1 desc1 f1 -3.20
u1 desc1 f1 1.10
u1 desc1 f1 -0.20
u2 desc1 f1 0.80
u2 desc1 f1 -0.80
u2 desc1 f1 -0.70
u2 desc1 f1 0.50
我认为row_number不包含在Spark 1.5中。我得到这个错误:scala> import org.apache.spark.sql.functions.row_number:29:error:value row_number is not a member of org.apache.spark.sql.functions import org.apache.spark .sql.functions.row_number –
user3803714
你说得对,但即使函数名称不同('rowNumber'),解决方案也是一样的。 – zero323
单独计算的行号与数据集df记录相关联的方式如何? –