コレクション関数: キーと値のペアが特定の述語関数を満たす新しいマップ列を返します。 Spark Connect をサポートします。
対応する Databricks SQL 関数については、 map_filter 関数を参照してください。
構文
from pyspark.databricks.sql import functions as dbf
dbf.map_filter(col=<col>, f=<f>)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
col |
pyspark.sql.Column または str |
フィルター処理するマップを表す列または列式の名前。 |
f |
function |
述語を定義するバイナリ関数。 この関数は、入力マップのフィルター処理に使用されるブール型の列を返す必要があります。 |
返品ポリシー
pyspark.sql.Column: 述語を満たすキーと値のペアのみを含む新しいマップ列。
例示
例 1: 単純な条件でマップをフィルター処理する
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)]
例 2: キーの条件を使用してマップをフィルター処理する
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)]