Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция сбора: возвращает новый столбец карты, пары "ключ-значение" которого удовлетворяют данной функции предиката. Поддерживает 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)]