Поделиться через


try_element_at

Функция сбора: возвращает элемент массива в заданном (1) индексе или значении заданного ключа на карте. Для массивов, если индекс равен 0, Spark выдает ошибку. Если индекс < 0, обращается к элементам из последнего к первому. Функция всегда возвращает значение NULL, если индекс превышает длину массива. Для карт функция всегда возвращает значение NULL, если ключ не содержится в карте.

Для соответствующей функции Databricks SQL смотрите функцию try_element_at.

Синтаксис

from pyspark.databricks.sql import functions as dbf

dbf.try_element_at(col=<col>, extraction=<extraction>)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Имя столбца, содержащего массив или карту.
extraction pyspark.sql.Column или str Индекс для проверки в массиве или ключе, чтобы проверить наличие на карте.

Примеры

Пример 1. Получение первого элемента массива

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(dbf.try_element_at(df.data, dbf.lit(1))).show()
+-----------------------+
|try_element_at(data, 1)|
+-----------------------+
|                      a|
+-----------------------+

Пример 2. Получение последнего элемента массива с помощью отрицательного индекса

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(dbf.try_element_at(df.data, dbf.lit(-1))).show()
+------------------------+
|try_element_at(data, -1)|
+------------------------+
|                       c|
+------------------------+