Freigeben über


map_filter

Sammlungsfunktion: Gibt eine neue Zuordnungsspalte zurück, deren Schlüsselwertpaare eine bestimmte Prädikatfunktion erfüllen. Unterstützt Spark Connect.

Die entsprechende Databricks SQL-Funktion finden Sie unter map_filter Funktion.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Der Name der Spalte oder eines Spaltenausdrucks, der die zu filternde Zuordnung darstellt.
f function Eine binäre Funktion, die das Prädikat definiert. Diese Funktion sollte eine boolesche Spalte zurückgeben, die zum Filtern der Eingabezuordnung verwendet wird.

Rückkehr

pyspark.sql.Column: Eine neue Zuordnungsspalte, die nur die Schlüsselwertpaare enthält, die das Prädikat erfüllen.

Examples

Beispiel 1: Filtern einer Karte mit einer einfachen Bedingung

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

Beispiel 2: Filtern einer Karte mit einer Bedingung auf Schlüsseln

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