Teilen über


try_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. Die Funktion gibt immer NULL zurück, wenn der Index die Länge des Arrays überschreitet. Bei Karten gibt die Funktion immer NULL zurück, wenn der Schlüssel nicht in der Karte enthalten ist.

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

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.try_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 pyspark.sql.Column oder str Index, der in Array oder Schlüssel überprüft werden soll, um nach in der Karte zu suchen.

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.try_element_at(df.data, dbf.lit(1))).show()
+-----------------------+
|try_element_at(data, 1)|
+-----------------------+
|                      a|
+-----------------------+

Beispiel 2: Abrufen des letzten Elements eines Arrays mit negativem Index

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