Title here
Summary here
array_insert(arr, pos, value)
array_insert
- добавляет элемент в заданный массив в указанном индексе массива.
Индексы массива начинаются с 1 или начинаются с конца, если индекс отрицательный.
arr
: Column or str. столбец содержащий массивpos
: Column or str. позицияvalue
: Column or str. новое значениеColumn
Массив значений, включая новое указанное значение
from pyspark.sql import SparkSession
from pyspark.sql.functions import array_insert
# Создание сессии Spark
spark = SparkSession.builder.appName("array_insert_example").getOrCreate()
# Пример данных
data = [([1, 2, 3],), ([4, 5, 6, 7,1],), ([4, None, None, None],), ([],), (None,)]
df = spark.createDataFrame(data, ["values"])
# добавляение значения в массив
df_with_array_insert= df.withColumn("array_insert", array_insert("values", lit(2), lit(100).cast('bigint')))
# Отображение результата
df_with_array_insert.show(truncate=False)
+---------------------+--------------------------+
|values |array_insert |
+---------------------+--------------------------+
|[1, 2, 3] |[1, 100, 2, 3] |
|[4, 5, 6, 7, 1] |[4, 100, 5, 6, 7, 1] |
|[4, NULL, NULL, NULL]|[4, 100, NULL, NULL, NULL]|
|[] |[NULL, 100] |
|NULL |NULL |
+---------------------+--------------------------+
# array_insert пример с отрицательным индексом
from pyspark.sql import SparkSession
from pyspark.sql.functions import array_insert
# Создание сессии Spark
spark = SparkSession.builder.appName("array_prepend_example").getOrCreate()
# Пример данных
data = [([1, 2, 3],), ([4, 5, 6, 7,1],), ([4, None, None, None],), ([],), (None,)]
df = spark.createDataFrame(data, ["values"])
# добавляение значения в массив
df_with_array_size = df.withColumn("array_insert", array_insert("values", lit(-1), lit(100).cast('bigint')))
# Отображение результата
df_with_array_size.show(truncate=False)
+---------------------+--------------------------+
|values |array_insert |
+---------------------+--------------------------+
|[1, 2, 3] |[1, 2, 3, 100] |
|[4, 5, 6, 7, 1] |[4, 5, 6, 7, 1, 100] |
|[4, NULL, NULL, NULL]|[4, NULL, NULL, NULL, 100]|
|[] |[100] |
|NULL |NULL |
+---------------------+--------------------------+
pyspark array_insert
Добавлено в версии | 3.4.0. |