Teilen über


element_at

Sammlungsfunktion: Gibt ein Arrayelement an einem bestimmten (1-basierten) Index oder Wert für den angegebenen Schlüssel in einer Karte zurück. Bei Arrays löst Spark bei 0 einen Fehler aus. Wenn Index < 0 ist, greift auf Elemente vom letzten zum ersten zu. Wenn "spark.sql.ansi.enabled" auf "true" festgelegt ist, wird eine Ausnahme ausgelöst, wenn der Index außerhalb der Arraygrenzen liegt, anstatt NULL zurückzugeben. Bei Karten gibt die Funktion immer NULL zurück, wenn der Schlüssel nicht in der Karte enthalten ist. Unterstützt Spark Connect.

Die entsprechende Databricks SQL-Funktion finden Sie unter element_at Funktion.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.element_at(col=<col>, extraction=<extraction>)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Name der Spalte, die Array oder Zuordnung enthält.
extraction Beliebig Index, der in Array oder Schlüssel überprüft werden soll, um nach in der Karte zu suchen.

Rückkehr

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

Examples

Beispiel 1: Abrufen des ersten Elements eines Arrays

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

Beispiel 2: Abrufen eines Werts aus einer Karte mithilfe eines Schlüssels

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([({"a": 1.0, "b": 2.0},)], ['data'])
df.select(dbf.element_at(df.data, dbf.lit("a"))).show()
+-------------------+
|element_at(data, a)|
+-------------------+
|                1.0|
+-------------------+