在spark sql中计算上一季度的第一天

wnavrhmk  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(745)

如何使用sqlapi在sparksql查询中导出与任何给定日期相关的最后一个季度的第一天?所需样品如下:

input_date | start_date
------------------------
2020-01-21 | 2019-10-01
2020-02-06 | 2019-10-01
2020-04-15 | 2020-01-01
2020-07-10 | 2020-04-01
2020-10-20 | 2020-07-01
2021-02-04 | 2020-10-01

季度通常为:

1 | Jan - Mar
2 | Apr - Jun
3 | Jul - Sep
4 | Oct - Dec

note:i am 使用spark sql v2.4。
感谢您的帮助。谢谢。

7vux5j2d

7vux5j2d1#

用3个月为负数的日期。

df.withColumn("start_date", to_date(date_trunc("quarter", expr("input_date - interval 3 months"))))
  .show()

+----------+----------+
|input_date|start_date|
+----------+----------+
|2020-01-21|2019-10-01|
|2020-02-06|2019-10-01|
|2020-04-15|2020-01-01|
|2020-07-10|2020-04-01|
|2020-10-20|2020-07-01|
|2021-02-04|2020-10-01|
+----------+----------+
ttisahbt

ttisahbt2#

就我个人而言,我会用excel或其他工具创建一个表格,上面写着未来20年的日期,然后引用这个表格。

相关问题