PySpark to_date函数返回NULL问题求助
问题解决:字符串转日期后全为NULL的修复方案
你的转换结果全部为NULL,核心问题是日期格式符号使用错误,具体修正点如下:
- 把大写的
DD改成小写的dd:DD表示「一年中的第几天」,而你数据里的是每月的具体日期,对应格式符是dd - 把大写的
YYYY改成小写的yyyy:YYYY是基于周的周年,日常日期转换应该用代表公历年的yyyy
修正后的代码:
spark.sql("set spark.sql.legacy.timeParserPolicy=LEGACY") workerdf = worker_df.withColumn('JOINING_DATE', to_date(col('JOINING_DATE_STR'), "dd-MM-yyyy"))
额外检查点:如果还有部分值为NULL,建议排查JOINING_DATE_STR列的字符串是否存在格式不统一的异常值(比如日期超过当月最大天数、非dd-MM-yyyy格式的字符串),这类异常值也会导致转换失败返回NULL。
内容的提问来源于stack exchange,提问作者Anish Dutta
相关产品推荐
相关产品推荐

