Skip to content

reflect(class_name, method_name, *args)

Описание

Функция reflect() вызывает статический метод Java класса по его имени.

Параметры

  • class_name: String - полное имя Java класса
  • method_name: String - имя вызываемого метода
  • *args: Column - аргументы метода

Возвращаемое значение

Зависит от типа возвращаемого значения вызываемого метода

Пример использования

from pyspark.sql.functions import reflect
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("reflect_example").getOrCreate()

# Создаем DataFrame с данными
data = [(1,), (2,), (3,)]
df = spark.createDataFrame(data, ["number"])

# Вызываем статический метод Java класса
result = df.select(
    "number",
    reflect("java.lang.Math", "sqrt", "number").alias("sqrt")
).show()

# Результат:
# +------+------------------+
# |number|sqrt             |
# +------+------------------+
# |     1|1.0              |
# |     2|1.4142135623730951|
# |     3|1.7320508075688772|
# +------+------------------+

Примечания

  • Класс должен быть доступен в classpath
  • Метод должен быть статическим
  • Для вызова методов экземпляра используйте java_method()
  • NULL значения в аргументах передаются как NULL