try_reflect
Ceci est une version spéciale de reflect qui effectue la même opération, mais retourne une valeur NULLE au lieu de lever une erreur si la méthode d'appel a lancé une exception.
Syntaxe
Python
from pyspark.sql import functions as sf
sf.try_reflect(*cols)
parameter
parameter | Type | Description |
|---|---|---|
|
| Le premier élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la classe, et le deuxième élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la méthode, et les éléments restants sont des arguments d'entrée (colonnes ou noms de colonnes) pour la méthode Java. |
Exemples
Exemple 1 : représentation d'un appel de méthode avec des arguments
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 |
+------------------------------------------+
**Exemple 2** : Exception dans l'appel de réflexion, résultant en 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 |
+-----------------------------------------+