次の方法で共有


try_element_at

コレクション関数: マップ内の特定の (1 から始まる) インデックスまたは特定のキーの値にある配列の要素を返します。 配列の場合、インデックスが 0 の場合、Spark はエラーをスローします。 index < 0 の場合は、最後の要素から最初の要素にアクセスします。 インデックスが配列の長さを超える場合、この関数は常に NULL を返します。 マップの場合、キーがマップに含まれていない場合、関数は常に NULL を返します。

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

構文

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 配列内でチェックするインデックスまたは map でチェックするキー。

例示

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