【发布时间】:2021-04-26 18:35:01
【问题描述】:
我得到了下一个镶木地板文件:
+--------------+------------+-------+
|gf_cutoff | country_id |gf_mlt |
+--------------+------------+-------+
|2020-12-14 |DZ |5 |
|2020-08-06 |DZ |4 |
|2020-07-03 |DZ |4 |
|2020-12-14 |LT |1 |
|2020-08-06 |LT |1 |
|2020-07-03 |LT |1 |
如您所见,由 country_id 参与,由 gf_cutoff DESC 排序。我想做的是比较 gf_mlt 以检查值是否已更改。为此,我想将最近的 gf_cutoff 与第二个进行比较。
这种情况的一个例子是比较:
2020-12-14 DZ 5
with
2020-08-06 DZ 4
我想在新列中写入,如果最近日期的值与第二行不同,则放入新列,DZ 的最新值为 5 并放入另一列 True if该值已更改,如果未更改,则为 false。 进行此比较后,删除具有较旧行的行。
DZ 已经改变,而 LT 没有改变,因为都是 1。
所以输出会是这样的:
+--------------+------------+-------+------------+-----------+
|gf_cutoff | country_id |gf_mlt | Has_change | old_value |
+--------------+------------+-------+------------+-----------+
|2020-12-14 |DZ |5 | True | 4 |
|2020-12-14 |LT |1 | False | 1 |
如果您需要更多解释,请告诉我。
【问题讨论】:
标签: scala dataframe apache-spark apache-spark-sql window-functions