0
我有一個數組,其中包含一個可包含整數值的arraytype列。如果沒有值,它將只包含一個值,它將爲空值檢查arraytype列是否包含空值
重要:請注意,該列不會爲空,而是具有單個值的數組;空
> val df: DataFrame = Seq(("foo", Seq(Some(2), Some(3))), ("bar", Seq(None))).toDF("k", "v")
df: org.apache.spark.sql.DataFrame = [k: string, v: array<int>]
> df.show()
+---+------+
| k| v|
+---+------+
|foo|[2, 3]|
|bar|[null]|
問題:我想獲得具有空值的行。
感謝您的幫助
我迄今爲止嘗試:
> df.filter(array_contains(df("v"), 2)).show()
+---+------+
| k| v|
+---+------+
|foo|[2, 3]|
+---+------+
爲空,它似乎並沒有工作
> df.filter(array_contains(df("v"), null)).show()
org.apache.spark.sql.AnalysisException: cannot resolve 'array_contains(`v`, NULL)' due to data type mismatch: Null typed values cannot be used as arguments;
或
> df.filter(array_contains(df("v"), None)).show()
java.lang.RuntimeException: Unsupported literal type class scala.None$ None
什麼'df.filter(array_contains(DF( 「V」),NULL))顯示()'? '「null」'是一個字符串。 –
這不會工作,因爲顯式檢查爲空。你會得到空類型的值不能用作參數 –