我想計數數據幀在列空值是這樣的:計數空值火花(斯卡拉)
df.filter((df(colname) === null) || (df(colname) === "")).count()
在colname的有列的名稱。如果列類型是字符串,但是如果列類型是整數並且存在一些空值,此代碼始終返回0,此工作正常。爲什麼這樣呢?如何改變它使其工作?
我想計數數據幀在列空值是這樣的:計數空值火花(斯卡拉)
df.filter((df(colname) === null) || (df(colname) === "")).count()
在colname的有列的名稱。如果列類型是字符串,但是如果列類型是整數並且存在一些空值,此代碼始終返回0,此工作正常。爲什麼這樣呢?如何改變它使其工作?
關於這一問題提到df.filter((df(colname) === null) || (df(colname) === "")).count()
作品String
數據類型,但測試表明,null
不處理。
@ Psidom的回答同時處理null
和empty
但不手柄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
在這個線程你找到更廣泛的答案。只需添加.count()。 https://stackoverflow.com/questions/39727742/how-to-filter-out-a-null-value-from-spark-dataframe –