Udostępnij przez


zip_with

Połącz dwie dane tablice element po elemencie w jedną tablicę przy użyciu funkcji. Jeśli jedna tablica jest krótsza, wartości null są dołączane na końcu, aby dopasować długość dłuższej tablicy przed zastosowaniem funkcji. Obsługuje program Spark Connect.

Aby uzyskać odpowiednią funkcję SQL usługi Databricks, zobacz zip_with funkcja.

Składnia

from pyspark.databricks.sql import functions as dbf

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

Parametry

Parameter Typ Description
left pyspark.sql.Column lub str Nazwa pierwszej kolumny lub wyrażenia.
right pyspark.sql.Column lub str Nazwa drugiej kolumny lub wyrażenia.
f function Funkcja binarna.

Zwraca

pyspark.sql.Column: tablica wartości obliczeniowych pochodnych przez zastosowanie danej funkcji do każdej pary argumentów.

Przykłady

Przykład 1. Scalanie dwóch tablic z prostą funkcją

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]|
+---------------------------+

Przykład 2. Scalanie tablic o różnych długościach

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]|
+-----------------+