通过使用分隔符连接输入数组列的元素来返回字符串列。 数组中的 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|
+-------------------------+