次の方法で共有


map_filter

コレクション関数: キーと値のペアが特定の述語関数を満たす新しいマップ列を返します。 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)]