arrays_zip

Giriş dizilerinin tüm N. değerlerini içeren N. yapıyı barındıran birleştirilmiş bir yapı dizisi döndürür. Dizilerden biri diğerlerinden daha kısaysa, sonuçta elde edilen yapı türü değeri eksik öğeler için null olur.

Sözdizimi

from pyspark.sql import functions as sf

sf.arrays_zip(*cols)

Parametreler

Parametre Türü Description
cols pyspark.sql.Column veya str Birleştirilecek dizi sütunları.

İade

pyspark.sql.Column: Birleştirilmiş girdi dizisi.

Örnekler

Örnek 1: Aynı uzunlukta iki diziyi zipping etme

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3], ['a', 'b', 'c'])], ['nums', 'letters'])
df.select(sf.arrays_zip(df.nums, df.letters)).show(truncate=False)
+-------------------------+
|arrays_zip(nums, letters)|
+-------------------------+
|[{1, a}, {2, b}, {3, c}] |
+-------------------------+

Örnek 2: Farklı uzunluklarda dizileri kırpma

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2], ['a', 'b', 'c'])], ['nums', 'letters'])
df.select(sf.arrays_zip(df.nums, df.letters)).show(truncate=False)
+---------------------------+
|arrays_zip(nums, letters)  |
+---------------------------+
|[{1, a}, {2, b}, {NULL, c}]|
+---------------------------+

Örnek 3: İkiden fazla diziyi daraltma

from pyspark.sql import functions as sf
df = spark.createDataFrame(
  [([1, 2], ['a', 'b'], [True, False])], ['nums', 'letters', 'bools'])
df.select(sf.arrays_zip(df.nums, df.letters, df.bools)).show(truncate=False)
+--------------------------------+
|arrays_zip(nums, letters, bools)|
+--------------------------------+
|[{1, a, true}, {2, b, false}]   |
+--------------------------------+

Örnek 4: Null değerlerle dizileri daraltma

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, None], ['a', None, 'c'])], ['nums', 'letters'])
df.select(sf.arrays_zip(df.nums, df.letters)).show(truncate=False)
+------------------------------+
|arrays_zip(nums, letters)     |
+------------------------------+
|[{1, a}, {2, NULL}, {NULL, c}]|
+------------------------------+