Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Koleksiyon: Anahtar-değer çiftlerine bir işlev uygulayarak verilen iki eşlemeyi tek bir eşlemede birleştirir. Spark Connect'i destekler.
İlgili Databricks SQL fonksiyonu için bakınız map_zip_with fonksiyonu.
Sözdizimi
from pyspark.sql import functions as dbf
dbf.map_zip_with(col1=<col1>, col2=<col2>, f=<f>)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
col1 |
pyspark.sql.Column veya str |
İlk sütunun adı veya ilk eşlemeyi temsil eden bir sütun ifadesi. |
col2 |
pyspark.sql.Column veya str |
İkinci sütunun adı veya ikinci eşlemeyi temsil eden bir sütun ifadesi. |
f |
function |
İki eşlemedeki değerlerin nasıl birleştirildiğini tanımlayan üçüncül bir işlev. Bu işlev, sonuçta elde edilen eşlemede değer olarak kullanılacak bir sütun döndürmelidir. |
İade
pyspark.sql.Column: Her anahtar-değer çiftinin işlevi giriş eşlemelerindeki ilgili anahtar-değer çiftlerine uygulamanın sonucu olduğu yeni eşleme sütunu.
Örnekler
Örnek 1: İki eşlemeyi basit bir işlevle birleştirme
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)]
Örnek 2: eşleşmeyen anahtarlarla iki eşlemeyi birleştirme
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)]