Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это специальная версия reflect , которая выполняет ту же операцию, но возвращает значение NULL вместо того, чтобы вызвать ошибку, если метод вызова вызвал исключение.
Синтаксис
from pyspark.sql import functions as sf
sf.try_reflect(*cols)
Параметры
| Параметр | Тип | Description |
|---|---|---|
cols |
pyspark.sql.Column или str |
Первым элементом должен быть столбец, представляющий литеральную строку для имени класса, а второй элемент должен быть столбцом, представляющим литеральную строку для имени метода, а остальные — входными аргументами (столбцами или именами столбцов) в метод Java. |
Примеры
Пример 1. Отражение вызова метода с аргументами
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 |
+------------------------------------------+
Пример 2. Исключение в вызове отражения, в результате чего значение 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 |
+-----------------------------------------+