【发布时间】:2021-09-06 18:03:05
【问题描述】:
我有一个包含不同日期格式的日期列。现在我想用特定格式('MM-dd-yyyy')验证它,并且不匹配的日期必须格式化为所需的格式。
df = sc.parallelize([['12-21-2006'],
['05/30/2007'],
['01-01-1984'],
['22-12-2017'],
['12222019']]).toDF(["Date"])
df.show()
+----------+
| Date|
+----------+
|12-21-2006|
|05/30/2007|
|01-01-1984|
|22-12-2017|
| 12222019|
+----------+
现在验证,
correct=df.filter(~F.col("Date").isNotNull()|
to_date(F.col("Date"),'MM-dd-yyyy').isNotNull())
correct.show()
+----------+
| Date|
+----------+
|12-21-2006|
|01-01-1984|
+----------+
现在,我提取的错误记录如下:-
wrong = df.exceptAll(correct)
wrong.show()
+----------+
| Date|
+----------+
|05/30/2007|
| 12222019|
|22-12-2017|
+----------+
现在必须将这些错误记录格式化为所需的格式,即
'MM-dd-yyyy'
如果它是单一的,我可以通过指定特定格式来更改格式,但是如何将不同的日期格式转换为所需的日期格式?有什么解决办法吗?
【问题讨论】:
标签: date pyspark databricks date-format date-formatting