Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí sloučenou matici struktur, ve kterých N-th struktura obsahuje všechny N-th hodnoty vstupních polí. Pokud je některá z polí kratší než ostatní, výsledná hodnota typu struktury bude mít hodnotu null pro chybějící prvky.
Syntaxe
from pyspark.sql import functions as sf
sf.arrays_zip(*cols)
Parametry
| Parameter | Typ | Description |
|---|---|---|
cols |
pyspark.sql.Column nebo str |
Sloupce polí, které se mají sloučit. |
Návraty
pyspark.sql.Column: Sloučené pole položek.
Examples
Příklad 1: Zazipování dvou polí se stejnou délkou
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}] |
+-------------------------+
Příklad 2: Zazipování polí s různými délkami
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}]|
+---------------------------+
Příklad 3: Zazipování více než dvou polí
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}] |
+--------------------------------+
Příklad 4: Zazipování polí s hodnotami null
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}]|
+------------------------------+