簡體   English   中英

在 PySpark 中將字符串轉換為日期時處理 null 值

[英]handle null values while converting string to date in PySpark

我正在 AWS Glue 中構建作業,我的表有一個名為 booking 的列,數據類型為字符串。 它包括一些 null 值以及日期信息。 使用 **pySpark ** 數據框將字符串轉換為日期時,這些 null 值會導致問題。

預訂 姓名
11.01.2022 約翰
null 最大限度

我嘗試了多種解決方法。

  1. 使用fillna() 和 fill()將 null 值替換為虛擬日期 01.01.1900。 不幸的是,膠水作業拋出了一個錯誤,指出ImportError: cannot import name 'fill' from 'pyspark.sql.functions'我的想法是用虛擬日期替換 null 值,然后使用 to_date function 將其轉換。

  2. 寫作條件:

df_spark = df_spark.withColumn( "booking", when(df_spark.booking.isNull(), "01.01.1900").otherwise(df_spark.booking) )

df_spark = df_spark.withColumn( "buchungs_datum", to_date(df_spark["buchungs_datum"],"dd.MM.yyyy") )

這也會拋出超級奇怪的錯誤信息(附上截圖)

在此處輸入圖像描述

  1. 下面的語句也不起作用。

df_spark = df_spark.withColumn( "預訂", to_date(df_spark["預訂"], 無) )

你能幫我用正確的方法嗎?

提前謝謝了。

在“WithColumn”中使用合並 function。 這會將 null 替換為您提供的值。

不幸的是膠水作業拋出一個錯誤,指出 ImportError: cannot import name 'fill' from 'pyspark.sql.functions'

fill是您在特定DataFrame上調用的方法,因此您無需導入它。 它本身是 PySpark 的一部分,因此如果 PySpark 代碼中的 rest 運行正常,那么它應該沒有問題。 您可以在此處參考有關如何使用它的文檔 - https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrameNaFunctions.fill.html#pyspark- sql-dataframenafunctions-fill

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM