Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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]|
+-----------------------+