返回一个布尔值,该值指示数组是否包含给定的值。 如果数组为 null,则返回 null;如果数组包含给定值,则返回 true;否则返回 false。
Syntax
from pyspark.sql import functions as sf
sf.array_contains(col, value)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
包含数组的目标列。 |
value |
任意 | 要在数组中检查的值或列。 |
退货
pyspark.sql.Column:布尔类型的新列,其中每个值指示输入列中的相应数组是否包含指定的值。
例子
示例 1:array_contains函数的基本用法。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],), ([],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| true|
| false|
+-----------------------+
示例 2:使用列的 array_contains 函数。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], "c"),
(["c", "d", "e"], "d"),
(["e", "a", "c"], "b")], ["data", "item"])
df.select(sf.array_contains(df.data, sf.col("item"))).show()
+--------------------------+
|array_contains(data, item)|
+--------------------------+
| true|
| true|
| false|
+--------------------------+
示例 3:尝试将 array_contains 函数与 null 数组一起使用。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(None,), (["a", "b", "c"],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| NULL|
| true|
+-----------------------+
示例 4:使用包含 null 值的数组列的 array_contains。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_contains(df.data, "a")).show()
+-----------------------+
|array_contains(data, a)|
+-----------------------+
| true|
+-----------------------+