PySpark中如何将dd.mm.yyyy格式字符串转为yyyy-MM-dd日期格式?
解决PySpark日期字符串转日期类型返回null的问题
你遇到的核心问题是**to_date函数的格式参数用错了**——这个参数需要匹配输入字符串的格式,而非你期望的输出格式。
你的输入字符串格式是dd.mm.yyyy(比如02.11.2008),但你传入的格式是yyyy-mmm-dd,完全不匹配,导致转换失败返回null。另外要注意:月份格式需用大写MM,小写mm代表的是分钟,这也是容易踩的坑。
正确转换代码
df = df.withColumn("date_col", to_date("string_col", "dd.MM.yyyy"))
转换后结果
| string_col | date_col |
|---|---|
| 02.11.2008 | 2008-11-02 |
| 26.02.2021 | 2021-02-26 |
如果后续需要把日期类型列转为yyyy-MM-dd格式的字符串列,可以搭配date_format函数:
df = df.withColumn("date_str", date_format("date_col", "yyyy-MM-dd"))
内容的提问来源于stack exchange,提问作者f.ivy
相关产品推荐
相关产品推荐

