Teilen über


zip_with

Verbinden Sie zwei gegebene Arrays elementweise zu einem einzigen Array, indem Sie eine Funktion verwenden. Wenn ein Array kürzer ist, werden Nullen am Ende an die Länge des längeren Arrays angefügt, bevor die Funktion angewendet wird. Unterstützt Spark Connect.

Die entsprechende Databricks SQL-Funktion finden Sie unter zip_with Funktion.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Die Parameter

Parameter Typ Description
left pyspark.sql.Column oder str Name der ersten Spalte oder des ersten Ausdrucks.
right pyspark.sql.Column oder str Name der zweiten Spalte oder des zweiten Ausdrucks.
f function Eine binäre Funktion.

Rückkehr

pyspark.sql.Column: Array berechneter Werte, die durch Anwenden einer bestimmten Funktion auf jedes Argumentpaar abgeleitet werden.

Examples

Beispiel 1: Zusammenführen von zwei Arrays mit einer einfachen Funktion

from pyspark.databricks.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]|
+---------------------------+

Beispiel 2: Zusammenführen von Arrays unterschiedlicher Länge

from pyspark.databricks.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]|
+-----------------+