通过


array_join

通过使用分隔符连接输入数组列的元素来返回字符串列。 数组中的 Null 值可以通过null_replacement参数替换为指定的字符串。 如果未设置null_replacement,则忽略 null 值。

Syntax

from pyspark.sql import functions as sf

sf.array_join(col, delimiter, null_replacement=None)

参数

参数 类型 Description
col pyspark.sql.Column 或 str 包含要联接的数组的输入列。
delimiter str 联接数组元素时用作分隔符的字符串。
null_replacement str,可选 要替换数组中的 null 值的字符串。 如果未设置,则忽略 null 值。

退货

pyspark.sql.Column:字符串类型的新列,其中每个值都是从输入列联接相应数组的结果。

例子

示例 1:array_join函数的基本用法。

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],), (["a", "b"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
|              a,b,c|
|                a,b|
+-------------------+

示例 2:使用 null_replacement 参数的 array_join 函数。

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",", "NULL")).show()
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
|                 a,NULL,c|
+-------------------------+

示例 3:不带null_replacement参数的 array_join 函数的用法。

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
|                a,c|
+-------------------+

示例 4:将 array_join 函数与为 null 的数组一起使用。

from pyspark.sql import functions as sf
from pyspark.sql.types import StructType, StructField, ArrayType, StringType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([(None,)], schema)
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
|               NULL|
+-------------------+

示例 5:使用仅包含 null 值的数组的 array_join 函数。

from pyspark.sql import functions as sf
from pyspark.sql.types import StructType, StructField, ArrayType, StringType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([None, None],)], schema)
df.select(sf.array_join(df.data, ",", "NULL")).show()
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
|                NULL,NULL|
+-------------------------+