Ich arbeite an einer großen Datei, die eines der Felder im Format mmddyy hat mit String als Datentyp und ich muss es in YYYY-MM-DD konvertieren. Ich habe versucht, UDF zu erstellen und auf einen der Post aber seinen Wurffehler zu konvertieren. Beispielcode:Pyspark - Konvertieren mmddyy in YYYY-MM-DD
Actual Feld in Datenrahmen:
+-----------+
|DATE_OPENED|
+-----------+
| 072111|
| 090606|
Erwartete Ausgabe:
+---------------+
| DATE_OPENED|
+---------------+
| 2011-07-21|
| 2006-06-09|
Beispielcode:
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'))
Fehler:
Error : ValueError: time data '072111' does not match format '%m%d%Y'
Siehe meine aktualisierte Antwort. Es verwendet eine Standardmethode zur Lösung des Problems, ohne auf eine UDF angewiesen zu sein. – Shaido