Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вставляет элемент в заданный массив по указанному индексу массива. Индексы массива начинаются с 1 или начинаются с конца, если индекс отрицательный. Индекс над размером массива добавляет массив или добавляет массив, если индекс отрицательный, с элементами NULL.
Синтаксис
from pyspark.sql import functions as sf
sf.array_insert(arr, pos, value)
Параметры
| Параметр | Тип | Description |
|---|---|---|
arr |
pyspark.sql.Column или str |
Имя столбца, содержащего массив |
pos |
pyspark.sql.Column, str или int |
Имя столбца числового типа, указывающего положение вставки (начиная с индекса 1, отрицательное положение — начало от задней части массива) |
value |
Любое | Литеральное значение или выражение столбца. |
Возвраты
pyspark.sql.Column: массив значений, включая новое указанное значение
Примеры
Пример 1. Вставка значения в определенной позиции
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, 'd')).show()
+------------------------+
|array_insert(data, 2, d)|
+------------------------+
| [a, d, b, c]|
+------------------------+
Пример 2. Вставка значения в отрицательной позиции
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, -2, 'd')).show()
+-------------------------+
|array_insert(data, -2, d)|
+-------------------------+
| [a, b, d, c]|
+-------------------------+
Пример 3. Вставка значения в позиции больше размера массива
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 5, 'e')).show()
+------------------------+
|array_insert(data, 5, e)|
+------------------------+
| [a, b, c, NULL, e]|
+------------------------+
Пример 4. Вставка значения NULL
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['a', 'b', 'c'],)], ['data'])
df.select(sf.array_insert(df.data, 2, sf.lit(None))).show()
+---------------------------+
|array_insert(data, 2, NULL)|
+---------------------------+
| [a, NULL, b, c]|
+---------------------------+
Пример 5. Вставка значения в массив NULL
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([StructField("data", ArrayType(IntegerType()), True)])
df = spark.createDataFrame([(None,)], schema=schema)
df.select(sf.array_insert(df.data, 1, 5)).show()
+------------------------+
|array_insert(data, 1, 5)|
+------------------------+
| NULL|
+------------------------+