下个月是否有任何pyspark函数(例如date_add(日期,月(int类型)))



我是新来的Spark,是否有内置的功能显示下个月的下个月日期,例如今天的27-12-2016,那么该功能将返回2017年1月27日。我已经使用了date_add(),但是添加一个月没有功能。我已经尝试了date_add(日期,31),但是如果月份有30天。

spark.sql("select date_add(current_date(),31)") .show()

任何人都可以帮助我解决这个问题。我需要为此编写自定义功能吗?因为我还没有发现任何内置的代码提前致谢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|
# +--------------+-----------------------------+

您也可以使用负整数删除几个月:

spark.sql("select current_date(), add_months(current_date(),-1) as last_month").show()
# +--------------+----------+
# |current_date()|last_month|
# +--------------+----------+
# |    2016-12-27|2016-11-27|
# +--------------+----------+

我发现用于添加/减去月份的最直接数据框架

from pyspark.sql import functions as F
# assume df has "current_date" column as type DateType
months_to_add = 1  # int value, could be negative
df = df.withColumn("new_date", F.add_months("current_date", months_to_add))

此结果将包括先前包含的任何其他列。

相关内容

  • 没有找到相关文章

最新更新