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