Skip to main content

array_union

Returns a new array containing the union of elements in col1 and col2, without duplicates.

Syntax

Python
from pyspark.sql import functions as sf

sf.array_union(col1, col2)

Parameters

Parameter

Type

Description

col1

pyspark.sql.Column or str

Name of column containing the first array.

col2

pyspark.sql.Column or str

Name of column containing the second array.

Parameter

Type

Description

col1

pyspark.sql.Column or str

Name of column containing the first array.

col2

pyspark.sql.Column or str

Name of column containing the second array.

Returns

pyspark.sql.Column: A new array containing the union of elements in col1 and col2.

Examples

Example 1: Basic usage

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["c", "d", "a", "f"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c, d, f]|
+-------------------------------------+

Example 2: Union with no common elements

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2=["d", "e", "f"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c, d, e, f]|
+-------------------------------------+

Example 3: Union with all common elements

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", "c"], c2=["a", "b", "c"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c]|
+-------------------------------------+

Example 4: Union with null values

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["a", "b", None], c2=["a", None, "c"])])
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [NULL, a, b, c]|
+-------------------------------------+

Example 5: Union with empty arrays

Python
from pyspark.sql import Row, functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
data = [Row(c1=[], c2=["a", "b", "c"])]
schema = StructType([
StructField("c1", ArrayType(StringType()), True),
StructField("c2", ArrayType(StringType()), True)
])
df = spark.createDataFrame(data, schema)
df.select(sf.sort_array(sf.array_union(df.c1, df.c2))).show()
Output
+-------------------------------------+
|sort_array(array_union(c1, c2), true)|
+-------------------------------------+
| [a, b, c]|
+-------------------------------------+