【发布时间】:2021-12-05 13:45:39
【问题描述】:
我有以下 DataFrame(称之为dfTest):
| item | position | value |
|---|---|---|
| a | 1 | 8 |
| b | 2 | 9 |
| c | 3 | 10 |
| d | 4 | 7 |
| e | 5 | 9 |
我要做的是,给定距离限制1,找出距离(由@987654326 定义的行子集内的每一行中value 的排名索引(按降序排序) @column) 到这个item 不大于1。
例如,所需的输出(称为dfResult)应该是:
| item | position | value | rank |
|---|---|---|---|
| a | 1 | 8 | 2 |
| b | 2 | 9 | 2 |
| c | 3 | 10 | 1 |
| d | 4 | 7 | 3 |
| e | 5 | 9 | 1 |
解释:
- 对于
a行。由于b是唯一一个与a的距离abs(2-1)=1) 的item,所以value的排序子集是[9,8]和a的value的顺序是第二位,因此a的rank为2。 - 对于
b行。这里,a和c是距离到bitems,value的排序子集是[10,9,8]和b的value是第二个,因此b的rank是2。 - 对于
c行。这里,b和d是距离到citems,value的排序子集是[10,9,7]和c的value是第一个,因此c的rank为1。 - ...
感谢 Spark SQL、Scala 或 PySpark 中的任何解决方案!
【问题讨论】:
标签: sql scala apache-spark pyspark