在复杂要求的pyspark SQL查询上需要帮助

时间:2019-01-16 15:46:37

标签: pyspark pyspark-sql

我花了5分钟才拿出这个la脚的头衔,因为问题是如此复杂。

输入:

field1  field2  field3
A   A1  50
A   A2  70
B   B1  30
B   B2  30
B   B3  30
C   C1  45
C   C2  55
D   D1  80
D   D2  40
D   D3  50

预期输出:

field1  field2  field3  field4  field5
A   A1  50  50  0
A   A2  70  50  20
B   B1  30  30  0
B   B2  30  30  0
B   B3  30  30  0
C   C1  45  45  0
C   C2  55  55  0
D   D1  80  80  0
D   D2  40  20  20
D   D3  50  0   50

逻辑: field1是需要进行分组的关键列。
对于每个组,基于field4,最多可以在field3中分配100个。
一旦超过100,其余的将进入field5

例如: 与字段1“ A”组成的组,第一行字段3为50。在100中,整个50进入字段4。该组的第二行是70,而最初的100仅剩50。因此,50进入字段4,其余20进入字段5。 有没有办法纯粹在pyspark-sql中获得逻辑?

0 个答案:

没有答案
相关问题