map_filter

Koleksiyon işlevi: Anahtar-değer çiftleri belirli bir koşul işlevini karşılayan yeni bir eşleme sütunu döndürür. Spark Connect'i destekler.

İlgili Databricks SQL fonksiyonu için bakınız map_filter fonksiyonu.

Sözdizimi

from pyspark.sql import functions as dbf

dbf.map_filter(col=<col>, f=<f>)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Filtrelenecek eşlemeyi temsil eden sütunun veya sütun ifadesinin adı.
f function Koşulu tanımlayan ikili bir işlev. Bu işlev, giriş eşlemesini filtrelemek için kullanılacak bir boole sütunu döndürmelidir.

İade

pyspark.sql.Column: Yalnızca koşulu karşılayan anahtar-değer çiftlerini içeren yeni bir eşleme sütunu.

Örnekler

Örnek 1: Basit bir koşulla haritayı filtreleme

from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, {"foo": 42.0, "bar": 1.0, "baz": 32.0})], ("id", "data"))
row = df.select(
  dbf.map_filter("data", lambda _, v: v > 30.0).alias("data_filtered")
).head()
sorted(row["data_filtered"].items())
[('baz', 32.0), ('foo', 42.0)]

Örnek 2: Anahtarlar üzerindeki bir koşulla haritayı filtreleme

from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, {"foo": 42.0, "bar": 1.0, "baz": 32.0})], ("id", "data"))
row = df.select(
  dbf.map_filter("data", lambda k, _: k.startswith("b")).alias("data_filtered")
).head()
sorted(row["data_filtered"].items())
[('bar', 1.0), ('baz', 32.0)]