map_filter

Funkce kolekce: Vrátí nový sloupec mapy, jehož páry klíč-hodnota vyhovují dané predikátové funkci. Podporuje Spark Connect.

Odpovídající funkci SQL Databricks vizte funkcemap_filter.

Syntaxe

from pyspark.sql import functions as dbf

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

Parametry

Parameter Typ Description
col pyspark.sql.Column nebo str Název sloupce nebo výrazu sloupce představujícího mapu, která se má filtrovat.
f function Binární funkce, která definuje predikát. Tato funkce by měla vrátit logický sloupec, který se použije k filtrování vstupní mapy.

Návraty

pyspark.sql.Column: Nový sloupec mapy obsahující pouze páry klíč-hodnota, které splňují predikát.

Examples

Příklad 1: Filtrování mapy pomocí jednoduché podmínky

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

Příklad 2: Filtrování mapy s podmínkou na klíčích

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