Kal*_*yan 5 python apache-spark apache-spark-sql pyspark
我是 Spark 的新手,是否有任何内置函数可以显示当前日期的下个月日期,例如今天是 2016 年 12 月 27 日,那么该函数将返回 2017 年 1 月 27 日。我已经使用了 date_add() 但没有添加月份的功能。我尝试过 date_add(date, 31) 但是如果这个月有 30 天怎么办?
spark.sql("select date_add(current_date(),31)") .show()
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决这个问题。我需要为此编写自定义函数吗?因为我仍然没有找到任何内置代码提前感谢 Kalyan
这并不pyspark具体。您可以使用add_months。它从Spark 1.5开始可用。例如:
spark.sql("select current_date(), add_months(current_date(),1)").show()
# +--------------+-----------------------------+
# |current_date()|add_months(current_date(), 1)|
# +--------------+-----------------------------+
# | 2016-12-27| 2017-01-27|
# +--------------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
您还可以使用负整数来删除月份:
spark.sql("select current_date(), add_months(current_date(),-1) as last_month").show()
# +--------------+----------+
# |current_date()|last_month|
# +--------------+----------+
# | 2016-12-27|2016-11-27|
# +--------------+----------+
Run Code Online (Sandbox Code Playgroud)