registerJavaFunction (UDFRegistration)

Rejestruje funkcję zdefiniowaną przez użytkownika Java jako funkcję SQL.

Oprócz nazwy i samej funkcji można opcjonalnie określić typ zwracany. Gdy typ zwracany nie jest określony, jest on wnioskowany za pośrednictwem odbicia.

Składnia

registerJavaFunction(name, javaClassName, returnType=None)

Parametry

Parameter Typ Opis
name str Nazwa funkcji zdefiniowanej przez użytkownika.
javaClassName str W pełni kwalifikowana nazwa klasy Java.
returnType Typ danych lub str, opcjonalnie Zwracany typ zarejestrowanej funkcji Java. Wartość może być obiektem DataType lub ciągiem typu w formacie DDL.

Zwroty

None

Notatki

Użyj spark.udf.register w komórce notesu Scala, aby zarejestrować funkcję UDF języka Scala; będzie dostępny z Python w tej samej sesji.

Examples

Zarejestruj się przy użyciu jawnego DataType typu zwracanego.

from pyspark.sql.types import IntegerType
spark.udf.registerJavaFunction(
    "javaStringLength", "test.org.apache.spark.sql.JavaStringLength", IntegerType())
spark.sql("SELECT javaStringLength('test')").collect()
# [Row(javaStringLength(test)=4)]

Zarejestruj się bez określania typu zwracanego (wywnioskowany za pośrednictwem odbicia).

spark.udf.registerJavaFunction(
    "javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]

Zarejestruj się przy użyciu ciągu typu zwracanego w formacie DDL.

spark.udf.registerJavaFunction(
    "javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]