通过


array_contains

返回一个布尔值,该值指示数组是否包含给定的值。 如果数组为 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|
+-----------------------+