Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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)]