Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Koleksi: Menggabungkan dua peta yang diberikan ke dalam satu peta dengan menerapkan fungsi ke pasangan kunci-nilai. Mendukung Spark Connect.
Untuk fungsi Databricks SQL yang sesuai, lihat map_zip_with fungsi.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.map_zip_with(col1=<col1>, col2=<col2>, f=<f>)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
col1 |
pyspark.sql.Column atau str |
Nama kolom pertama atau ekspresi kolom yang mewakili peta pertama. |
col2 |
pyspark.sql.Column atau str |
Nama kolom kedua atau ekspresi kolom yang mewakili peta kedua. |
f |
function |
Fungsi terner yang menentukan cara menggabungkan nilai dari dua peta. Fungsi ini harus mengembalikan kolom yang akan digunakan sebagai nilai dalam peta yang dihasilkan. |
Pengembalian Barang
pyspark.sql.Column: Kolom peta baru di mana setiap pasangan kunci-nilai adalah hasil dari menerapkan fungsi ke pasangan kunci-nilai yang sesuai di peta input.
Examples
Contoh 1: Menggabungkan dua peta dengan fungsi sederhana
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([
(1, {"A": 1, "B": 2}, {"A": 3, "B": 4})],
("id", "map1", "map2"))
row = df.select(
dbf.map_zip_with("map1", "map2", lambda _, v1, v2: v1 + v2).alias("updated_data")
).head()
sorted(row["updated_data"].items())
[('A', 4), ('B', 6)]
Contoh 2: Menggabungkan dua peta dengan kunci yang tidak cocok
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([
(1, {"A": 1, "B": 2}, {"B": 3, "C": 4})],
("id", "map1", "map2"))
row = df.select(
dbf.map_zip_with("map1", "map2",
lambda _, v1, v2: dbf.when(v2.isNull(), v1).otherwise(v1 + v2)
).alias("updated_data")
).head()
sorted(row["updated_data"].items())
[('A', 1), ('B', 5), ('C', None)]