Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция сбора: возвращает элемент массива в заданном (1) индексе или значении заданного ключа на карте. Для массивов, если индекс равен 0, Spark выдает ошибку. Если индекс < 0, обращается к элементам из последнего к первому. Если для параметра "spark.sql.ansi.enabled" задано значение true, исключение будет возникать, если индекс выходит за пределы массива, а не возвращает значение NULL. Для карт функция всегда возвращает значение NULL, если ключ не содержится в карте. Поддерживает Spark Connect.
Для соответствующей функции Databricks SQL смотрите функцию element_at.
Синтаксис
from pyspark.databricks.sql import functions as dbf
dbf.element_at(col=<col>, extraction=<extraction>)
Параметры
| Параметр | Тип | Description |
|---|---|---|
col |
pyspark.sql.Column или str |
Имя столбца, содержащего массив или карту. |
extraction |
Любое | Индекс для проверки в массиве или ключе, чтобы проверить наличие на карте. |
Возвраты
pyspark.sql.Column: значение по заданной позиции.
Примеры
Пример 1. Получение первого элемента массива
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(dbf.element_at(df.data, 1)).show()
+-------------------+
|element_at(data, 1)|
+-------------------+
| a|
+-------------------+
Пример 2. Получение значения из карты с помощью ключа
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([({"a": 1.0, "b": 2.0},)], ['data'])
df.select(dbf.element_at(df.data, dbf.lit("a"))).show()
+-------------------+
|element_at(data, a)|
+-------------------+
| 1.0|
+-------------------+