使用spark从日期列中获取周末日期

6ojccjat  于 2023-01-13  发布在  Apache
关注(0)|答案(2)|浏览(196)

我需要使用spark SQL从日期列中获取周末(星期六日期)。
例如
如果我提供日期“2020-01-10”,则应返回“2020-01-11”。如果我提供日期“2020-01-01”,则应返回“2020-01-04”

bejyjqdl

bejyjqdl1#

在Spark 2.3.0中,您可以使用date_trunc来获得一周的开始日期,然后添加天数以获得所需的工作日。

spark.sql("select '2020-01-10' given, date_trunc('WEEK', '2020-01-10') week_start , date_add(date_trunc('WEEK', '2020-01-10'),5) saturday_date").show()
+----------+-------------------+-------------+
|     given|         week_start|saturday_date|
+----------+-------------------+-------------+
|2020-01-10|2020-01-06 00:00:00|   2020-01-11|
+----------+-------------------+-------------+
ru9i0ody

ru9i0ody2#

我在用

cast(date_add(date_Column, 6-cast(date_format(date_Column, 'u') as BIGINT)) as date) weekend_day

相关问题