返回一个布尔列,指示输入数组是否具有常见的非 null 元素。 如果值为 true,则返回 null(如果数组不包含任何常见元素,但不为空,并且其中至少一个元素包含 null 元素);否则返回 false。
Syntax
from pyspark.sql import functions as sf
sf.arrays_overlap(a1, a2)
参数
| 参数 | 类型 | Description |
|---|---|---|
a1 |
pyspark.sql.Column 或 str |
包含第一个数组的列的名称。 |
a2 |
pyspark.sql.Column 或 str |
包含第二个数组的列的名称。 |
退货
pyspark.sql.Column:布尔类型的新列,其中每个值指示输入列中的相应数组是否包含任何常见元素。
例子
示例 1:arrays_overlap函数的基本用法。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b"], ["b", "c"]), (["a"], ["b", "c"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| false|
+--------------------+
示例 2:使用包含 null 元素的数组的 arrays_overlap 函数。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None], ["b", None]), (["a"], ["b", "c"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| false|
+--------------------+
示例 3:将 arrays_overlap 函数与为 null 的数组一起使用。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(None, ["b", "c"]), (["a"], None)], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| NULL|
| NULL|
+--------------------+
示例 4:对具有相同元素的数组使用arrays_overlap。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b"], ["a", "b"]), (["a"], ["a"])], ['x', 'y'])
df.select(sf.arrays_overlap(df.x, df.y)).show()
+--------------------+
|arrays_overlap(x, y)|
+--------------------+
| true|
| true|
+--------------------+