Freigeben über


java_method

Ruft eine Methode mit Reflexion auf.

Syntax

from pyspark.sql import functions as sf

sf.java_method(*cols)

Die Parameter

Parameter Typ Description
cols pyspark.sql.Column oder str Das erste Element sollte eine Spalte sein, die literale Zeichenfolge für den Klassennamen darstellt, und das zweite Element sollte eine Spalte sein, die literale Zeichenfolge für den Methodennamen darstellt, und die verbleibenden sind Eingabeargumente (Spalten- oder Spaltennamen) für die Java-Methode.

Examples

Beispiel 1: Reflektieren eines Methodenaufrufs mit einem Spaltenargument

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

Beispiel 2: Reflektieren eines Methodenaufrufs mit einem Spaltennamenargument

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