Delen via


try_reflect

Dit is een speciale versie van reflect die dezelfde bewerking uitvoert, maar retourneert een NULL-waarde in plaats van een fout op te geven als de aanroepmethode een uitzondering heeft gegenereerd.

Syntaxis

from pyspark.sql import functions as sf

sf.try_reflect(*cols)

Parameterwaarden

Kenmerk Typologie Description
cols pyspark.sql.Column of str Het eerste element moet een kolom zijn die de letterlijke tekenreeks voor de klassenaam vertegenwoordigt. Het tweede element moet een kolom zijn die de letterlijke tekenreeks voor de methodenaam vertegenwoordigt en de resterende invoerargumenten (kolommen of kolomnamen) zijn voor de Java-methode.

Voorbeelden

Voorbeeld 1: Een methode-aanroep weergeven met argumenten

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

Voorbeeld 2: Uitzondering in de weerspiegelingsoproep, wat resulteert in 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                                     |
+-----------------------------------------+