Aller au contenu principal

map_filter

Fonction de collection : renvoie une nouvelle colonne de carte dont les paires clé-valeur satisfont une fonction prédicat donnée. Prend en charge Spark Connect.

Pour la fonction Databricks SQL correspondante, consultez la fonctionmap_filter.

Syntaxe

Python
from pyspark.sql import functions as dbf

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

parameter

parameter

Type

Description

col

pyspark.sql.Column OU str

Le nom de la colonne ou une expression de colonne représentant la carte à filtrer.

f

function

Une fonction binaire qui définit le prédicat. Cette fonction doit renvoyer une colonne booléenne qui sera utilisée pour filtrer la carte d'entrée.

parameter

Type

Description

col

pyspark.sql.Column OU str

Le nom de la colonne ou une expression de colonne représentant la carte à filtrer.

f

function

Une fonction binaire qui définit le prédicat. Cette fonction doit renvoyer une colonne booléenne qui sera utilisée pour filtrer la carte d'entrée.

Renvoie

pyspark.sql.Column: Une nouvelle colonne de carte contenant uniquement les paires clé-valeur qui satisfont le prédicat.

Exemples

Exemple 1 : Filtrer une carte avec une condition simple.

Python
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())
Output
[('baz', 32.0), ('foo', 42.0)]

Exemple 2 : Filtrage d'une carte avec une condition sur les clés

Python
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())
Output
[('bar', 1.0), ('baz', 32.0)]