Skip to main content

try_reflect

This is a special version of reflect that performs the same operation, but returns a NULL value instead of raising an error if the invoke method thrown exception.

Syntax

Python
from pyspark.sql import functions as sf

sf.try_reflect(*cols)

Parameters

Parameter

Type

Description

cols

pyspark.sql.Column or str

The first element should be a Column representing literal string for the class name, and the second element should be a Column representing literal string for the method name, and the remaining are input arguments (Columns or column names) to the Java method.

Parameter

Type

Description

cols

pyspark.sql.Column or str

The first element should be a Column representing literal string for the class name, and the second element should be a Column representing literal string for the method name, and the remaining are input arguments (Columns or column names) to the Java method.

Examples

Example 1: Reflecting a method call with 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 |
+------------------------------------------+

Example 2: Exception in the reflection call, resulting in 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 |
+-----------------------------------------+