Teilen über


get

Gibt das Element eines Arrays am angegebenen (0-basierten) Index zurück. Wenn der Index außerhalb der Arraygrenzen zeigt, gibt diese Funktion NULL zurück. Die Position ist nicht 1-basiert, sondern 0-basierter Index.

Syntax

from pyspark.sql import functions as sf

sf.get(col, index)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Name der Spalte, die das Array enthält.
index pyspark.sql.Column, str oder int Index, der im Array überprüft werden soll.

Rückkehr

pyspark.sql.Column: Wert an der angegebenen Position.

Examples

Beispiel 1: Abrufen eines Elements an einer festen Position

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(sf.get(df.data, 1)).show()
+------------+
|get(data, 1)|
+------------+
|           b|
+------------+

Beispiel 2: Abrufen eines Elements an einer Position außerhalb der Arraygrenzen

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],)], ['data'])
df.select(sf.get(df.data, 3)).show()
+------------+
|get(data, 3)|
+------------+
|        NULL|
+------------+

Beispiel 3: Abrufen eines Elements an einer position, die durch eine andere Spalte angegeben wird

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], 2)], ['data', 'index'])
df.select(sf.get(df.data, df.index)).show()
+----------------+
|get(data, index)|
+----------------+
|               c|
+----------------+

Beispiel 4: Abrufen eines Elements an einer Position, die aus einer anderen Spalte berechnet wird

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], 2)], ['data', 'index'])
df.select(sf.get(df.data, df.index - 1)).show()
+----------------------+
|get(data, (index - 1))|
+----------------------+
|                     b|
+----------------------+

Beispiel 5: Abrufen eines Elements an einer negativen Position

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"], )], ['data'])
df.select(sf.get(df.data, -1)).show()
+-------------+
|get(data, -1)|
+-------------+
|         NULL|
+-------------+