![](/img/trans.png)
[英]Spark dataframe replace values of specific columns in a row with Nulls
[英]Replace Empty values with nulls in Spark Dataframe
我有一個n列數的數據框,我想用null替換所有這些列中的空字符串。
我嘗試使用
val ReadDf = rawDF.na.replace("columnA", Map( "" -> null));
和
val ReadDf = rawDF.withColumn("columnA", if($"columnA"=="") lit(null) else $"columnA" );
他們兩個都沒有工作。
任何線索將不勝感激。 謝謝。
您的第一種方法可能由於無法replace
的錯誤而失敗,請參見此處 。
第二種方法失敗了,因為您將驅動程序端的Scala代碼與執行程序端的Dataframe指令混淆了:if-else表達式將在驅動程序中進行一次評估(而不是對每個記錄); 您希望將其替換為對when
函數的調用; 此外,要比較列的值,您需要使用===
運算符,而不是Scala的==
,后者只是比較驅動程序端的Column
對象:
import org.apache.spark.sql.functions._
rawDF.withColumn("columnA", when($"columnA" === "", lit(null)).otherwise($"columnA"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.