【发布时间】:2020-12-14 01:16:37
【问题描述】:
输入:
item loc month year qty
A DEL 5 2020 12
A DEL 6 2020 14
A DEL 8 2020 16
A DEL 9 2020 17
输出:
item loc month year qty
A DEL 5 2020 12
A DEL 6 2020 14
A DEL 7 2020 26
A DEL 8 2020 16
A DEL 9 2020 17
A DEL 10 2020 33
说明:
我的输入中没有第 7 个月。因此,为了计算第 7 个月,我将前两个月的数量相加。
例如,第 7 个月的输出将为 12(从第 5 个月开始)+14(从第 6 个月开始)=26
因此,每当缺少任何月份时,我都应该用这个逻辑填充那个月。
【问题讨论】:
-
输入中有第 6 个月。你是说 7 吗?
-
@GordonLinoff 对不起......是的,我的意思是 7
-
那么,如果缺少第 7 个月和第 8 个月,我们将根据第 5 个月和第 6 个月计算第 7 个月,然后从第 6 个月计算第 8 个月,并计算第 7 个月的数字?
-
@ThorstenKettner 是的
-
那么您需要一个迭代过程。 SQL 不是为迭代而设计的。最好改用编程语言。如果要使用 SQL,则需要递归查询。它们似乎不能在 Spark 中直接使用。如果您必须在 SQL 中执行此操作,请查看stackoverflow.com/questions/38904807/…。
标签: sql dataframe apache-spark apache-spark-sql