我在pyspark中有一个数据帧,看起来像这样
|Id1| id2 |row |grp |
|12 | 1234 |1 | 1 |
|23 | 1123 |2 | 1 |
|45 | 2343 |3 | 2 |
|65 | 2345 |1 | 2 |
|67 | 3456 |2 | 2 |```
I need to retrieve value for id2 corresponding to row = 1 and update all id2 values within a grp to that value.
This should be the final result
|Id1 | id2 |row |grp|
|12 |1234 |1 |1 |
|23 |1234 |2 |1 |
|45 |2345 |3 |2 |
|65 |2345 |1 |2 |
|67 |2345 |2 |2 |
我尝试过像df.groupby('grp')、sort('row')、first('id2')这样的操作 但显然,排序和排序方式在pyspark中与groupby不起作用
你知道怎么做吗
试试这个:
与@Steven的答案非常相似,没有使用
.rowsBetween
基本上,您可以为每个}
grp
创建一个Window
,然后按row
对行进行排序,并首先为每个grp
选择{相关问题 更多 >
编程相关推荐