Delen via


slice

Retourneert een nieuwe matrixkolom door de invoermatrixkolom van een beginindex naar een specifieke lengte te segmenteren. De indexen beginnen bij 1 en kunnen negatief zijn om te indexeren vanaf het einde van de matrix. De lengte geeft het aantal elementen in de resulterende matrix aan.

Syntaxis

from pyspark.sql import functions as sf

sf.slice(x, start, length)

Parameterwaarden

Kenmerk Typologie Description
x pyspark.sql.Column of str De kolom- of kolomnaam van de invoermatrix die moet worden gesegmenteerd.
start pyspark.sql.Column, str of int De beginindex voor de segmentbewerking. Als dit negatief is, wordt de index gestart vanaf het einde van de matrix.
length pyspark.sql.Column, str of int De lengte van het segment, dat het aantal elementen in de resulterende matrix aangeeft.

Retouren

pyspark.sql.Column: Een nieuw kolomobject van het matrixtype, waarbij elke waarde een segment is van de bijbehorende lijst uit de invoerkolom.

Voorbeelden

Voorbeeld 1: Basisgebruik van de segmentfunctie.

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

Voorbeeld 2: segmentering met negatieve beginindex.

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

Voorbeeld 3: Segmentfunctie met kolominvoer voor begin en lengte.

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