zip_with

Sloučte dvě daná pole po prvcích do jednoho pole pomocí funkce. Pokud je jedno pole kratší, před použitím funkce se na konci připojí hodnoty null tak, aby odpovídaly délce delšího pole. Podporuje Spark Connect.

Odpovídající funkci SQL Databricks vizte funkcezip_with.

Syntaxe

from pyspark.sql import functions as dbf

dbf.zip_with(left=<left>, right=<right>, f=<f>)

Parametry

Parameter Typ Description
left pyspark.sql.Column nebo str Název prvního sloupce nebo výrazu
right pyspark.sql.Column nebo str Název druhého sloupce nebo výrazu
f function Binární funkce.

Návraty

pyspark.sql.Column: matice počítaných hodnot odvozených použitím dané funkce na každou dvojici argumentů.

Examples

Příklad 1: Sloučení dvou polí s jednoduchou funkcí

from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 3, 5, 8], [0, 2, 4, 6])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: x ** y).alias("powers")).show(truncate=False)
+---------------------------+
|powers                     |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+

Příklad 2: Sloučení polí s různými délkami

from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, ["foo", "bar"], [1, 2, 3])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: dbf.concat_ws("_", x, y)).alias("xs_ys")).show()
+-----------------+
|            xs_ys|
+-----------------+
|[foo_1, bar_2, 3]|
+-----------------+