try_reflect

Jedná se o speciální verzi reflect , která provádí stejnou operaci, ale vrátí hodnotu NULL místo vyvolání chyby, pokud vyvolá metoda vyvolá výjimku.

Syntaxe

from pyspark.sql import functions as sf

sf.try_reflect(*cols)

Parametry

Parameter Typ Description
cols pyspark.sql.Column nebo str Prvním prvkem by měl být sloupec představující literálový řetězec pro název třídy a druhý prvek by měl být Sloupec představující literálový řetězec pro název metody a zbývající jsou vstupní argumenty (názvy sloupců nebo sloupců) do metody Java.

Examples

Příklad 1: Reflektování volání metody s argumenty

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)
+------------------------------------------+
|try_reflect(java.util.UUID, fromString, a)|
+------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2      |
+------------------------------------------+

Příklad 2: Výjimka ve volání reflexe, která má za následek hodnotu null

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)
+-----------------------------------------+
|try_reflect(scala.Predef, require, false)|
+-----------------------------------------+
|NULL                                     |
+-----------------------------------------+