首页 > 解决方案 > 使用 spark 从日期列中获取周末日期

问题描述

我需要使用 spark SQL 从日期列中获取周末(星期六日期)。

例如

如果我提供日期“2020-01-10”,它应该返回“2020-01-11”如果我提供日期“2020-01-01”,它应该返回“2020-01-04”

标签: apache-sparkapache-spark-sqlpyspark-sql

解决方案


从 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|
+----------+-------------------+-------------+

推荐阅读