Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kolekce: Sloučí dvě dané mapy do jedné mapy použitím funkce u párů klíč-hodnota. Podporuje Spark Connect.
Odpovídající funkci SQL Databricks vizte funkcemap_zip_with.
Syntaxe
from pyspark.sql import functions as dbf
dbf.map_zip_with(col1=<col1>, col2=<col2>, f=<f>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col1 |
pyspark.sql.Column nebo str |
Název prvního sloupce nebo výrazu sloupce představujícího první mapu. |
col2 |
pyspark.sql.Column nebo str |
Název druhého sloupce nebo výrazu sloupce představujícího druhou mapu. |
f |
function |
Ternární funkce, která definuje, jak sloučit hodnoty ze dvou map. Tato funkce by měla vrátit sloupec, který se použije jako hodnota výsledné mapy. |
Návraty
pyspark.sql.Column: Nový sloupec mapy, kde každý pár klíč-hodnota je výsledkem použití funkce na odpovídající páry klíč-hodnota ve vstupních mapách.
Examples
Příklad 1: Sloučení dvou map s jednoduchou funkcí
from pyspark.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)]
Příklad 2: Sloučení dvou map s neshodovanými klíči
from pyspark.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)]