Aller au contenu principal

java_method

Appelle une méthode par réflexion.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.java_method(*cols)

parameter

parameter

Type

Description

cols

pyspark.sql.Column ou str

Le premier élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la classe, et le deuxième élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la méthode, et les éléments restants sont des arguments d'entrée (colonnes ou noms de colonnes) pour la méthode Java.

parameter

Type

Description

cols

pyspark.sql.Column ou str

Le premier élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la classe, et le deuxième élément doit être une colonne représentant une chaîne de caractères littérale pour le nom de la méthode, et les éléments restants sont des arguments d'entrée (colonnes ou noms de colonnes) pour la méthode Java.

Exemples

Exemple 1 : Réflexion d'un appel de méthode avec un argument de colonne

Python
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)
Output
+-----------------------------------------------------------------------------+
|java_method(java.util.UUID, fromString, a5cf6c42-0c85-418f-af6c-3e4e5b1328f2)|
+-----------------------------------------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2 |
+-----------------------------------------------------------------------------+

Exemple 2 : Reflétant un appel de méthode avec un argument de nom de colonne

Python
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)
Output
+------------------------------------------+
|java_method(java.util.UUID, fromString, a)|
+------------------------------------------+
|a5cf6c42-0c85-418f-af6c-3e4e5b1328f2 |
+------------------------------------------+