簡體   English   中英

計算 Spark (Scala) 中數據幀列中的空值

[英]Count empty values in dataframe column in Spark (Scala)

我正在嘗試像這樣計算 DataFrame 列中的空值:

df.filter((df(colname) === null) || (df(colname) === "")).count()

colnamecolname的名稱。 如果列類型是字符串,這可以正常工作,但如果列類型是整數並且有一些空值,此代碼總是返回 0。為什么會這樣? 如何更改它以使其工作?

正如問題中提到的df.filter((df(colname) === null) || (df(colname) === "")).count()適用於String數據類型,但測試表明null是沒有處理。

@Psidom 的答案處理nullempty處理NaN

檢查.isNaN應該處理所有三種情況

df.filter(df(colName).isNull || df(colName) === "" || df(colName).isNaN).count()

您可以使用isNull來測試null條件:

val df = Seq((Some("a"), Some(1)), (null, null), (Some(""), Some(2))).toDF("A", "B")
// df: org.apache.spark.sql.DataFrame = [A: string, B: int]

df.filter(df("A").isNull || df("A") === "").count
// res7: Long = 2

df.filter(df("B").isNull || df("B") === "").count
// res8: Long = 1

暫無
暫無

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

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