다음을 통해 공유


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