Поделиться через


java_method

Вызывает метод с использованием рефлексии.

Синтаксис

from pyspark.sql import functions as sf

sf.java_method(*cols)

Параметры

Параметр Тип Description
cols pyspark.sql.Column или str Первым элементом должен быть столбец, представляющий литеральную строку для имени класса, а второй элемент должен быть столбцом, представляющим литеральную строку для имени метода, а остальные — входными аргументами (столбцами или именами столбцов) в метод Java.

Примеры

Пример 1. Отражение вызова метода с аргументом столбца

from pyspark.sql import functions as sf
spark.range(1).select(
    sf.java_method(
        sf.lit("java.util.UUID"),
        sf.lit("fromString"),
        sf.lit("a5cf6c42-0c85-418f-af6c-3e4e5b1328f2")
    )
).show(truncate=False)
+-----------------------------------------------------------------------------+
|java_method(java.util.UUID, fromString, a5cf6c42-0c85-418f-af6c-3e4e5b1328f2)|
+-----------------------------------------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2                                         |
+-----------------------------------------------------------------------------+

Пример 2. Отражение вызова метода с аргументом имени столбца

from pyspark.sql import functions as sf
df = spark.createDataFrame([('a5cf6c42-0c85-418f-af6c-3e4e5b1328f2',)], ['a'])
df.select(
    sf.java_method(sf.lit('java.util.UUID'), sf.lit('fromString'), 'a')
).show(truncate=False)
+------------------------------------------+
|java_method(java.util.UUID, fromString, a)|
+------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2      |
+------------------------------------------+