Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Samlingsfunktion: Returnerar en ny kartkolumn vars nyckel/värde-par uppfyller en viss predikatfunktion. Stöder Spark Connect.
För motsvarande Databricks SQL-funktion, se map_filter funktion.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.map_filter(col=<col>, f=<f>)
Parameterar
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column eller str |
Namnet på kolumnen eller ett kolumnuttryck som representerar den karta som ska filtreras. |
f |
function |
En binär funktion som definierar predikatet. Den här funktionen ska returnera en boolesk kolumn som ska användas för att filtrera indatakartan. |
Retur
pyspark.sql.Column: En ny kartkolumn som endast innehåller nyckel/värde-par som uppfyller predikatet.
Examples
Exempel 1: Filtrera en karta med ett enkelt villkor
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)]
Exempel 2: Filtrera en karta med ett villkor för nycklar
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)]