集合函数:返回映射中给定(基于 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.Column 或 str |
包含数组或映射的列的名称。 |
extraction |
pyspark.sql.Column 或 str |
要签入数组或键以签入映射的索引。 |
例子
示例 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|
+------------------------+