Scala 如何枚举数据帧的行?火花鳞片
我有这样一个数据帧(renderDF):Scala 如何枚举数据帧的行?火花鳞片,scala,apache-spark,dataframe,Scala,Apache Spark,Dataframe,我有这样一个数据帧(renderDF): +------+---+-------+ | uid|sid|renders| +------+---+-------+ | david| 0| 0| |rachel| 1| 0| |rachel| 3| 0| |rachel| 2| 0| | pep| 2| 0| | pep| 0| 1| | pep| 1| 1| |rachel| 0| 1
+------+---+-------+
| uid|sid|renders|
+------+---+-------+
| david| 0| 0|
|rachel| 1| 0|
|rachel| 3| 0|
|rachel| 2| 0|
| pep| 2| 0|
| pep| 0| 1|
| pep| 1| 1|
|rachel| 0| 1|
| rick| 1| 1|
| ross| 0| 3|
| rick| 0| 3|
+------+---+-------+
我想使用一个窗口函数来实现这个结果
+------+---+-------+-----------+
| uid|sid|renders|row_number |
+------+---+-------+-----------+
| david| 0| 0| 1 |
|rachel| 1| 0| 2 |
|rachel| 3| 0| 3 |
|rachel| 2| 0| 4 |
| pep| 2| 0| 5 |
| pep| 0| 1| 6 |
| pep| 1| 1| 7 |
|rachel| 0| 1| 8 |
| rick| 1| 1| 9 |
| ross| 0| 3| 10 |
| rick| 0| 3| 11 |
+------+---+-------+-----------+
我尝试:
val windowRender = Window.partitionBy('sid).orderBy('Renders)
renderDF.withColumn("row_number", row_number() over windowRender)
但它不能满足我的需要。
分区是我的问题吗?试试这个:
val dfWithRownumber = renderDF.withColumn("row_number", row_number.over(Window.partitionBy(lit(1)).orderBy("renders")))
“它不起作用”并没有真正的帮助。实际的错误消息是什么?您可以不使用
partitionBy()
进行尝试,但这不会被分发。它不会给我错误,但不会执行@Marth所需的操作