Compartilhar via


map_filter

Função de coleção: retorna uma nova coluna de mapa cujos pares chave-valor atendem a uma determinada função de predicado. Dá suporte ao Spark Connect.

Para a função SQL do Databricks correspondente, consulte a função map_filter.

Sintaxe

from pyspark.databricks.sql import functions as dbf

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

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str O nome da coluna ou uma expressão de coluna que representa o mapa a ser filtrado.
f function Uma função binária que define o predicado. Essa função deve retornar uma coluna booliana que será usada para filtrar o mapa de entrada.

Devoluções

pyspark.sql.Column: uma nova coluna de mapa que contém apenas os pares chave-valor que atendem ao predicado.

Exemplos

Exemplo 1: Filtrar um mapa com uma condição simples

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)]

Exemplo 2: Filtrando um mapa com uma condição nas chaves

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)]