arrays_zip

arrays_zip(*cols)

arrays_zip - Функция arrays_zip в PySpark используется для объединения нескольких массивов в один массив кортежей. Функция принимает несколько массивов в качестве входных данных и возвращает массив кортежей, где каждый кортеж содержит элементы из каждого массива. Если колличество элементов не одинаковое, меньший массив будет дополнен Null.

Параметры
Column or str, * array1 , array2 , … Массивы, которые нужно объединить.
Возвращает
Column объединенный массив записей.

arrays_zip example

from pyspark.sql import SparkSession
from pyspark.sql.functions import arrays_zip

# Создание сессии Spark
spark = SparkSession.builder.appName("arrays_zip_example").getOrCreate()

# Пример данных
data = [([1, 2, 3], [4, 5, 6]), ([4, 5, 6], [6, 7])]
df = spark.createDataFrame(data, ["array1", "array2"])

# объединяем элементы массива каждого массива
df_arrays_zip = df.withColumn("arrays_zip", arrays_zip("array1", "array2"))

# Отображение результата
df_arrays_zip.show(10, False)

+---------+---------+---------------------------+
|array1   |array2   |arrays_zip                 |
+---------+---------+---------------------------+
|[1, 2, 3]|[4, 5, 6]|[{1, 4}, {2, 5}, {3, 6}]   |
|[4, 5, 6]|[6, 7]   |[{4, 6}, {5, 7}, {6, NULL}]|
+---------+---------+---------------------------+
 
from pyspark.sql import SparkSession
from pyspark.sql.functions import arrays_zip

# Создание сессии Spark
spark = SparkSession.builder.appName("df_arrays_zip").getOrCreate()

# Пример данных
data = [([1, 2, 3], [4, 5, 6], [3, 3, 3]), ([4, 5, 6], [6, 7], [4, 4, 4])]
df = spark.createDataFrame(data, ["array1", "array2", "array3"])

# объединяем элементы трех массивов
df_arrays_zip = df.withColumn("arrays_zip", arrays_zip("array1", "array2", "array3" ))

# # Отображение результата
df_arrays_zip.show(10, False)

+---------+---------+---------+------------------------------------+
|array1   |array2   |array3   |arrays_zip                          |
+---------+---------+---------+------------------------------------+
|[1, 2, 3]|[4, 5, 6]|[3, 3, 3]|[{1, 4, 3}, {2, 5, 3}, {3, 6, 3}]   |
|[4, 5, 6]|[6, 7]   |[4, 4, 4]|[{4, 6, 4}, {5, 7, 4}, {6, NULL, 4}]|
+---------+---------+---------+------------------------------------+

pyspark arrays_zip

Добавлено в версии2.4.0.
Обновлено в версии3.4.0.