Freigeben über


Slice

Gibt eine neue Arrayspalte zurück, indem die Eingabearrayspalte von einem Startindex aus bis zu einer spezifischen Länge geschnitten wird. Die Indizes beginnen bei 1 und können vom Ende des Arrays negativ sein. Die Länge gibt die Anzahl der Elemente im resultierenden Array an.

Syntax

from pyspark.sql import functions as sf

sf.slice(x, start, length)

Die Parameter

Parameter Typ Description
x pyspark.sql.Column oder str Eingabearray-Spalten- oder Spaltenname, der segmentiert werden soll.
start pyspark.sql.Column, str oder int Der Startindex für den Datenschnittvorgang. Wenn negativ, beginnt der Index vom Ende des Arrays.
length pyspark.sql.Column, str oder int Die Länge des Datenschnitts, der die Anzahl der Elemente im resultierenden Array darstellt.

Rückkehr

pyspark.sql.Column: Ein neues Column-Objekt vom Arraytyp, wobei jeder Wert ein Segment der entsprechenden Liste aus der Eingabespalte ist.

Examples

Beispiel 1: Grundlegende Verwendung der Segmentfunktion.

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

Beispiel 2: Slicing mit negativem Startindex.

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

Beispiel 3: Segmentfunktion mit Spalteneingaben für Start und Länge.

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