通过


try_element_at

集合函数:返回映射中给定(基于 1)索引或给定键的数组元素。 对于数组,如果索引为 0,Spark 将引发错误。 如果索引 < 0,则访问最后一个元素到第一个元素。 如果索引超过数组的长度,则该函数始终返回 NULL。 对于映射,如果映射中不包含键,则该函数始终返回 NULL。

有关相应的 Databricks SQL 函数,请参阅 try_element_at 函数

Syntax

from pyspark.databricks.sql import functions as dbf

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

参数

参数 类型 Description
col pyspark.sql.Columnstr 包含数组或映射的列的名称。
extraction pyspark.sql.Columnstr 要签入数组或键以签入映射的索引。

例子

示例 1:获取数组的第一个元素

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|
+-----------------------+

示例 2:使用负索引获取数组的最后一个元素

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|
+------------------------+