Bagikan melalui


try_reflect

Ini adalah versi reflect khusus yang melakukan operasi yang sama, tetapi mengembalikan nilai NULL alih-alih meningkatkan kesalahan jika metode pemanggilan melemparkan pengecualian.

Syntax

from pyspark.sql import functions as sf

sf.try_reflect(*cols)

Parameter-parameternya

Pengaturan Tipe Description
cols pyspark.sql.Column atau str Elemen pertama harus berupa Kolom yang mewakili string harfiah untuk nama kelas, dan elemen kedua harus berupa Kolom yang mewakili string harfiah untuk nama metode, dan yang tersisa adalah argumen input (Kolom atau nama kolom) ke metode Java.

Examples

Contoh 1: Mencerminkan panggilan metode dengan argumen

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

Contoh 2: Pengecualian dalam panggilan pantulan, menghasilkan 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                                     |
+-----------------------------------------+