Freigeben über


array_position

Sucht die Position des ersten Vorkommens des angegebenen Werts im angegebenen Array. Gibt NULL zurück, wenn eines der Argumente null ist. Die Position ist nicht nullbasiert, sondern 1 basierender Index. Gibt 0 zurück, wenn der angegebene Wert nicht im Array gefunden werden konnte.

Syntax

from pyspark.sql import functions as sf

sf.array_position(col, value)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Zielspalte, an der gearbeitet werden soll.
value Beliebig Wert oder ein Column-Ausdruck, nach dem gesucht werden soll.

Rückkehr

pyspark.sql.Column: Position des Werts im angegebenen Array, falls gefunden und 0 andernfalls.

Examples

Beispiel 1: Suchen der Position einer Zeichenfolge in einem Array von Zeichenfolgen

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

Beispiel 2: Suchen der Position einer Zeichenfolge in einem leeren Array

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_position(df.data, "a")).show()
+-----------------------+
|array_position(data, a)|
+-----------------------+
|                      0|
+-----------------------+

Beispiel 3: Ermitteln der Position einer ganzen Zahl in einem Array ganzzahliger Zahlen

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

Beispiel 4: Suchen der Position eines nicht vorhandenen Werts in einem Array

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

Beispiel 5: Suchen der Position eines Werts in einem Array mit Nullen

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

Beispiel 6: Ermitteln der Position des Werts einer Spalte in einem Array ganzzahliger Zahlen

from pyspark.sql import functions as sf
df = spark.createDataFrame([([10, 20, 30], 20)], ['data', 'col'])
df.select(sf.array_position(df.data, df.col)).show()
+-------------------------+
|array_position(data, col)|
+-------------------------+
|                        2|
+-------------------------+