【发布时间】:2017-12-13 20:05:39
【问题描述】:
我正在处理一个大文件,该文件具有 mmddyy 格式的字段之一,其数据类型为字符串,我需要将其转换为 YYYY-MM-DD。我确实尝试过创建 UDF 并转换引用其中一篇文章,但它的抛出错误。示例代码:
数据框中的实际字段:
+-----------+
|DATE_OPENED|
+-----------+
| 072111|
| 090606|
预期输出:
+---------------+
| DATE_OPENED|
+---------------+
| 2011-07-21|
| 2006-06-09|
示例代码:
func = udf (lambda x: datetime.strptime(x, '%m%d%Y'), DateType())
newdf = olddf.withColumn('open_dt' ,date_format(func(col('DATE_OPENED')) , 'YYYY-MM-DD'))
错误:
Error : ValueError: time data '072111' does not match format '%m%d%Y'
【问题讨论】:
-
查看我的更新答案。它使用更标准的方法来解决问题,而不依赖于 UDF。
标签: python datetime apache-spark pyspark pyspark-sql