Поделиться через


array_join

Возвращает строковый столбец путем объединения элементов столбца входного массива с помощью разделителя. Значения NULL в массиве можно заменить указанной строкой с помощью аргумента null_replacement. Если null_replacement не задано, значения NULL игнорируются.

Синтаксис

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. Использование функции array_join с аргументом null_replacement.

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. Использование функции array_join без null_replacement аргумента.

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. Использование функции 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, None],)], schema)
df.select(sf.array_join(df.data, ",", "NULL")).show()
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
|                NULL,NULL|
+-------------------------+