私は大きなファイルを扱っています。このファイルは、mmddyy形式のフィールドの1つにデータ型としての文字列を持ち、YYYY-MM-DDに変換する必要があります。私はUDFを作成しようとしましたが、ポストの1つを参照して変換していますが、そのスローエラーです。サンプルコード:データフレームでPyspark - mmddyyをYYYY-MM-DDに変換する
実際のフィールド:
+-----------+
|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に依存することなく、問題を解決する標準的な方法を使用します。 – Shaido