在 Spark SQL 中计算财务日期

Posted

技术标签:

【中文标题】在 Spark SQL 中计算财务日期【英文标题】:Calculating Financial dates in Spark SQL 【发布时间】:2021-06-26 18:25:31 【问题描述】:

我需要在 SQL API 中的 Spark SQL 中从给定日期计算财政年度、财政季度等。谁能帮我完成这个。

几个例子如下:

输入日期:2021-06-24

输出:

fncl_yr_key = 2021
fncl_qtr_key = 202104
fncl_mon = 12
lst_day_mon = 2021-06-30

输入日期:2021-09-16 输出:

fncl_yr_key = 2022
fncl_qtr_key = 202201
fncl_mon = 3
lst_day_mon = 2021-09-30

输入日期:2022-02-10 输出:

fncl_yr_key = 2022
fncl_qtr_key = 202203
fncl_mon = 8
lst_day_mon = 2022-02-28

我需要在 SQL 中执行此操作。任何帮助表示赞赏。

谢谢。

【问题讨论】:

看来你已经发了两次same question 【参考方案1】:

以下是示例 spark sql 查询,可满足您的需求:

from pyspark.sql.functions import last_day, year, month
spark.sql("""SELECT  CASE WHEN (month(creation_date) > 6) THEN (year(creation_date) +1)  ELSE (year(creation_date)) end  AS fncl_yr_key, CASE WHEN (month(creation_date) > 6) THEN (month(creation_date) -6)  ELSE (month(creation_date) + 6) end  AS fncl_mon, last_day(creation_date) AS lst_day_mon from default.test_hudi_rds_4""").show()

fncl_qtr_key 也可以与此类似。您可以在使用时优化此查询。

这是上面查询的输出:

如果对你有帮助,请告诉我。

【讨论】:

以上是关于在 Spark SQL 中计算财务日期的主要内容,如果未能解决你的问题,请参考以下文章

如何计算定义自定义财务日历的两个日期之间的月数?

计算pyspark中两个日期之间的时间

sql 如何计算财务季度结束前的剩余天数

如何在 Spark Scala SQL 查询中包含 0 值?

Spark SQL 滑动窗口差分计算

如何计算 Spark SQL(Databricks)中表中的列数?