Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione raccolta: restituisce una nuova colonna della mappa le cui coppie chiave-valore soddisfano una funzione predicata specificata. Supporta Spark Connect.
Per la funzione SQL di Databricks corrispondente, vedere map_filter funzione.
Sintassi
from pyspark.databricks.sql import functions as dbf
dbf.map_filter(col=<col>, f=<f>)
Parametri
| Parametro | TIPO | Description |
|---|---|---|
col |
pyspark.sql.Column o str |
Nome della colonna o di un'espressione di colonna che rappresenta la mappa da filtrare. |
f |
function |
Funzione binaria che definisce il predicato. Questa funzione deve restituire una colonna booleana che verrà usata per filtrare la mappa di input. |
Restituzioni
pyspark.sql.Column: nuova colonna della mappa contenente solo le coppie chiave-valore che soddisfano il predicato.
Esempi
Esempio 1: Filtro di una mappa con una condizione semplice
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)]
Esempio 2: Filtro di una mappa con una condizione sulle chiavi
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)]