メインコンテンツまでスキップ

要素_at

コレクション関数: マップ内の指定されたキーに対して、指定された (1 から始まる) インデックスまたは値にある配列の要素を返します。配列の場合、インデックスが 0 の場合、Spark はエラーをスローします。インデックス < 0 の場合、最後の要素から最初の要素にアクセスします。'spark.sql.ansi.enabled' が true に設定されている場合、インデックスが配列の境界外にあると NULL を返す代わりに例外がスローされます。マップの場合、キーがマップに含まれていない場合、関数は常に NULL を返します。Spark Connect をサポートします。

対応する Databricks SQL 関数については、 element_at関数を参照してください。

構文

Python
from pyspark.databricks.sql import functions as dbf

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

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または str

配列またはマップを含む列の名前。

extraction

すべて

配列内でチェックするインデックス、またはマップ内でチェックするキー。

戻り値

pyspark.sql.Column: 指定された位置の値。

例1 :配列の最初の要素を取得する

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

例2 : キーを使ってマップから値を取得する

Python
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()
Output
+-------------------+
|element_at(data, a)|
+-------------------+
| 1.0|
+-------------------+