Delen via


map_filter

Verzamelingsfunctie: retourneert een nieuwe kaartkolom waarvan de sleutel-waardeparen voldoen aan een bepaalde predicaatfunctie. Ondersteunt Spark Connect.

Voor de overeenkomstige Databricks SQL-functie, zie de map_filter functie.

Syntaxis

from pyspark.databricks.sql import functions as dbf

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

Parameterwaarden

Kenmerk Typologie Description
col pyspark.sql.Column of str De naam van de kolom of een kolomexpressie die de kaart vertegenwoordigt die moet worden gefilterd.
f function Een binaire functie die het predicaat definieert. Deze functie moet een Booleaanse kolom retourneren die wordt gebruikt om de invoertoewijzing te filteren.

Retouren

pyspark.sql.Column: Een nieuwe kaartkolom met alleen de sleutel-waardeparen die voldoen aan het predicaat.

Voorbeelden

Voorbeeld 1: Een kaart filteren met een eenvoudige voorwaarde

from pyspark.databricks.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)]

Voorbeeld 2: Een kaart filteren met een voorwaarde op sleutels

from pyspark.databricks.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)]