檔案中的日期列(在 AWS S3 中)采用“2021 年 7 月 28 日”格式。由于它是一個檔案,因此被視為字串資料型別。我正在嘗試將資料加載到 RDS(Postgres)。RDS 列是日期資料型別。
我正在使用以下行將字串轉換為日期,但日期列中加載了 NULLS,其余字串/整數列正確加載。
df_S3=df_S3.withColumn('visit_date', to_date(df_S3.visit_date, 'MON DD, YYYY'))
我在 S3 檔案中將日期從“2021 年 7 月 28 日”更改為“28-JUL-2021”,并使用以下代碼行將資料處理到 RDS 中 -
df_S3=df_S3.withColumn('visit_date', to_date(df_S3.visit_date, 'DD-MMM-YYYY'))
日期已正確加載到 RDS 中。
您能否建議如何使用 PySpark 將“2021 年 7 月 28 日”轉換/加載為日期資料型別列?
謝謝。
uj5u.com熱心網友回復:
您可以嘗試以下操作
df_S3=df_S3.withColumn('visit_date', to_date(df_S3.visit_date, 'MMMM d, yyyy'))
基于最新檔案中傳達的更改:
我們使用MMMM來匹配完整的月份名稱、d匹配天數和yyyy匹配年份。
完整示例
df_S3 = spark.createDataFrame([("July 28, 2021",),("March 5, 2013",)],schema="visit_date string")
df_S3.show()
-------------
| visit_date|
-------------
|July 28, 2021|
|March 5, 2013|
-------------
df_S3.withColumn('visit_date2', F.to_date(df_S3.visit_date, 'MMMM d, yyyy')).show()
------------- -----------
| visit_date|visit_date2|
------------- -----------
|July 28, 2021| 2021-07-28|
|March 5, 2013| 2013-03-05|
------------- -----------
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372904.html
上一篇:左連接與聚合函式和連接表上的選擇
