Bagikan melalui


zip_with

Gabungkan dua array yang diberikan ke dalam satu array per elemen menggunakan fungsi. Jika satu array lebih pendek, null ditambahkan di akhir agar sesuai dengan panjang array yang lebih panjang, sebelum menerapkan fungsi. Mendukung Spark Connect.

Untuk fungsi Databricks SQL yang sesuai, lihat zip_with fungsi.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Parameter-parameternya

Pengaturan Tipe Description
left pyspark.sql.Column atau str Nama kolom atau ekspresi pertama.
right pyspark.sql.Column atau str Nama kolom atau ekspresi kedua.
f function Fungsi biner.

Pengembalian Barang

pyspark.sql.Column: array nilai terhitung yang diturunkan dengan menerapkan fungsi yang diberikan ke setiap pasangan argumen.

Examples

Contoh 1: Menggabungkan dua array dengan fungsi sederhana

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

Contoh 2: Menggabungkan array dengan panjang yang berbeda

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