我有一个数据框,其中有一列可以包含整数值的数组类型。如果没有值,它将只包含一个,并且它将是空值
重要的:注意该列不会为空,而是一个具有单个值的数组;无效的
> 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]|
Question:我想获取具有空值的行。
到目前为止我已经尝试过:
> df.filter(array_contains(df("v"), 2)).show()
+---+------+
| k| v|
+---+------+
|foo|[2, 3]|
+---+------+
对于null,它似乎不起作用
> df.filter(array_contains(df("v"), null)).show()
org.apache.spark.sql.AnalysisException:无法解析
'数组包含(v
, NULL)' 由于数据类型不匹配:空类型
值不能用作参数;
or
> df.filter(array_contains(df("v"), None)).show()
java.lang.RuntimeException:不支持的文字类型类 scala.None$
没有任何