Bagikan melalui


array_insert

Menyisipkan item ke dalam array yang diberikan pada indeks array yang ditentukan. Indeks array dimulai pada 1, atau mulai dari akhir jika indeks negatif. Indeks di atas ukuran array menambahkan array, atau menambahkan array jika indeks negatif, dengan elemen 'null'.

Syntax

from pyspark.sql import functions as sf

sf.array_insert(arr, pos, value)

Parameter-parameternya

Pengaturan Tipe Description
arr pyspark.sql.Column atau str Nama kolom yang berisi array
pos pyspark.sql.Column, str, atau int Nama kolom jenis numerik yang menunjukkan posisi penyisipan (dimulai pada indeks 1, posisi negatif adalah awal dari bagian belakang array)
value Apa saja Nilai harfiah, atau ekspresi Kolom.

Pengembalian Barang

pyspark.sql.Column: array nilai, termasuk nilai baru yang ditentukan

Examples

Contoh 1: Menyisipkan nilai pada posisi tertentu

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]|
+------------------------+

Contoh 2: Menyisipkan nilai pada posisi negatif

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]|
+-------------------------+

Contoh 3: Menyisipkan nilai pada posisi yang lebih besar dari ukuran array

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]|
+------------------------+

Contoh 4: Menyisipkan nilai 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]|
+---------------------------+

Contoh 5: Menyisipkan nilai ke dalam array 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|
+------------------------+