try_element_at

Funkce kolekce: Vrátí prvek pole v daném indexu (1) nebo hodnotě daného klíče v mapě. Pokud je index 0, v případě polí vyvolá Spark chybu. Pokud index < 0, přistupuje k prvkům od posledního k prvnímu. Funkce vždy vrátí hodnotu NULL, pokud index překročí délku pole. Pro mapy funkce vždy vrátí hodnotu NULL, pokud klíč není obsažen v mapě.

Odpovídající funkci SQL Databricks vizte funkcetry_element_at.

Syntaxe

from pyspark.sql import functions as dbf

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

Parametry

Parameter Typ Description
col pyspark.sql.Column nebo str Název sloupce obsahujícího pole nebo mapování
extraction pyspark.sql.Column nebo str Index, který hledá v poli nebo klíči, aby se zkontroloval v mapě.

Examples

Příklad 1: Získání prvního prvku pole

from pyspark.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|
+-----------------------+

Příklad 2: Získání posledního prvku pole pomocí záporného indexu

from pyspark.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|
+------------------------+