首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spark中计算前一个季度的第一天

在Spark中计算前一个季度的第一天
EN

Stack Overflow用户
提问于 2020-09-09 14:14:04
回答 2查看 1.2K关注 0票数 0

如何使用SQL导出最后一个季度的第一个日与Spark查询中的任何给定日期有关?所需样品很少如下:

代码语言:javascript
复制
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

宿舍一般为:

代码语言:javascript
复制
1 | Jan - Mar
2 | Apr - Jun
3 | Jul - Sep
4 | Oct - Dec

注意:我使用的是SparkSQLv2.4。

任何帮助都是非常感谢的。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-09-10 02:02:07

使用date_trunc与否定的3个月。

代码语言:javascript
复制
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|
+----------+----------+
票数 2
EN

Stack Overflow用户

发布于 2020-09-09 15:19:57

就我个人而言,我会使用excel或其他工具创建一个表,其中包含今后20年的日期,只需引用该表即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63813537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档