Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает элемент массива по заданному индексу (начиная с 0). Если точки индекса за пределами границ массива, эта функция возвращает значение NULL. Позиция не основана на 1, но на основе 0 индекса.
Синтаксис
from pyspark.sql import functions as sf
sf.get(col, index)
Параметры
| Параметр | Тип | Description |
|---|---|---|
col |
pyspark.sql.Column или str |
Имя столбца, содержащего массив. |
index |
pyspark.sql.Column, str или int |
Индекс для проверки в массиве. |
Возвраты
pyspark.sql.Column: значение по заданной позиции.
Примеры
Пример 1. Получение элемента в фиксированной позиции
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(sf.get(df.data, 1)).show()
+------------+
|get(data, 1)|
+------------+
| b|
+------------+
Пример 2. Получение элемента в позиции вне границ массива
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(sf.get(df.data, 3)).show()
+------------+
|get(data, 3)|
+------------+
| NULL|
+------------+
Пример 3. Получение элемента в позиции, указанной другим столбцом
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], 2)], ['data', 'index'])
df.select(sf.get(df.data, df.index)).show()
+----------------+
|get(data, index)|
+----------------+
| c|
+----------------+
Пример 4. Получение элемента в позиции, вычисляемой из другого столбца
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], 2)], ['data', 'index'])
df.select(sf.get(df.data, df.index - 1)).show()
+----------------------+
|get(data, (index - 1))|
+----------------------+
| b|
+----------------------+
Пример 5. Получение элемента в отрицательной позиции
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], )], ['data'])
df.select(sf.get(df.data, -1)).show()
+-------------+
|get(data, -1)|
+-------------+
| NULL|
+-------------+