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

トライリフレクト

これはreflectの特別なバージョンであり、同じ操作を実行しますが、invoke メソッドが例外をスローした場合にエラーを発生させる代わりに NULL 値を返します。

構文

Python
from pyspark.sql import functions as sf

sf.try_reflect(*cols)

パラメーター

パラメーター

Type

説明

cols

pyspark.sql.Column または文字列

最初の要素はクラス名のリテラル文字列を表す列、2 番目の要素はメソッド名のリテラル文字列を表す列、残りは Java メソッドへの入力引数 (列または列名) になります。

例1 : 引数付きメソッド呼び出しの反映

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("a5cf6c42-0c85-418f-af6c-3e4e5b1328f2",)], ["a"])
df.select(
sf.try_reflect(sf.lit("java.util.UUID"), sf.lit("fromString"), "a")
).show(truncate=False)
Output
+------------------------------------------+
|try_reflect(java.util.UUID, fromString, a)|
+------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2 |
+------------------------------------------+

例2 : リフレクション呼び出しで例外が発生し、nullになる

Python
from pyspark.sql import functions as sf
spark.range(1).select(
sf.try_reflect(sf.lit("scala.Predef"), sf.lit("require"), sf.lit(False))
).show(truncate=False)
Output
+-----------------------------------------+
|try_reflect(scala.Predef, require, false)|
+-----------------------------------------+
|NULL |
+-----------------------------------------+