Bagikan melalui


map_zip_with

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