Bagikan melalui


potongan

Mengembalikan kolom array baru dengan cara mengiris kolom array input mulai dari indeks awal hingga panjang tertentu. Indeks dimulai pada 1, dan dapat negatif untuk diindeks dari akhir array. Panjang menentukan jumlah elemen dalam array yang dihasilkan.

Syntax

from pyspark.sql import functions as sf

sf.slice(x, start, length)

Parameter-parameternya

Pengaturan Tipe Description
x pyspark.sql.Column atau str Masukkan kolom array atau nama kolom yang akan diiris.
start pyspark.sql.Column, str, atau int Indeks awal untuk operasi ilis. Jika negatif, memulai indeks dari akhir array.
length pyspark.sql.Column, str, atau int Panjang iringan, mewakili jumlah elemen dalam array yang dihasilkan.

Pengembalian Barang

pyspark.sql.Column: Objek Kolom baru dari jenis Array, di mana setiap nilai adalah ikatan daftar yang sesuai dari kolom input.

Examples

Contoh 1: Penggunaan dasar fungsi iringan.

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],), ([4, 5],)], ['x'])
df.select(sf.slice(df.x, 2, 2)).show()
+--------------+
|slice(x, 2, 2)|
+--------------+
|        [2, 3]|
|           [5]|
+--------------+

Contoh 2: Mengiris dengan indeks mulai negatif.

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],), ([4, 5],)], ['x'])
df.select(sf.slice(df.x, -1, 1)).show()
+---------------+
|slice(x, -1, 1)|
+---------------+
|            [3]|
|            [5]|
+---------------+

Contoh 3: Fungsi ilis dengan input kolom untuk mulai dan panjang.

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3], 2, 2), ([4, 5], 1, 3)], ['x', 'start', 'length'])
df.select(sf.slice(df.x, df.start, df.length)).show()
+-----------------------+
|slice(x, start, length)|
+-----------------------+
|                 [2, 3]|
|                 [4, 5]|
+-----------------------+