如何将SQL中的CONVERT日期转换语句改写为PySpark代码?
SQL转PySpark:生成yyyymm格式的日期
你的需求是把指定SQL转成PySpark代码,核心是生成yyyymm格式的两个月前日期,直接用PySpark的date_format函数就能一步到位,不用像SQL那样先转成完整日期再截断。
原SQL逻辑回顾
原SQL先把当前日期往前推2个月,再转成yyyymmdd格式后截取前6位得到yyyymm。PySpark里可以简化这个流程:
PySpark实现代码
from pyspark.sql.functions import current_date, add_months, date_format # 给DataFrame新增目标列 df = df.withColumn("CURRENT_DATE", date_format(add_months(current_date(), -2), "yyyyMM")) # 或者直接查询该字段 df.select(date_format(add_months(current_date(), -2), "yyyyMM").alias("CURRENT_DATE")).show()
关键说明
add_months(current_date(), -2):和你掌握的用法一致,获取当前日期往前推2个月的日期date_format(日期, "yyyyMM"):直接将日期格式化为yyyyMM(即yyyymm)的字符串,一步得到你要的格式,无需额外截断操作
内容的提问来源于stack exchange,提问作者Isabela Branco
相关产品推荐
相关产品推荐

