Регистрация Java sparkSQL Пользовательская функция - PullRequest
0 голосов
/ 16 мая 2018

Я написал Java Spark SQL UDF, как показано ниже.

import org.apache.spark.sql.api.java.UDF1;
public class LowerCase_UDF implements UDF1<String,String> 
{
    @Override
    public String call(String t1) throws Exception 
    {   
        String output="";
        output=t1.toLowerCase();
        return output;
    }
}

Как происходит регистрация этой функции в искре? Если я запускаю sqlContext.udf.register («LowerCaseUDF», вызов), он выдает исключение «ошибка: notfound: значение вызова»

Я добавил сгенерированный файл jar в папку spark-client / lib. Но это не похоже на работу. Мы хотим, чтобы функция была в Java по определенным причинам. Любая помощь в этом будет оценена. Спасибо

1 Ответ

0 голосов
/ 18 мая 2018

Чтобы зарегистрировать UDF в Spark SQL с помощью Java, вы можете использовать следующий код:

sparkSession.udf().register("lowercase_udf", new LowerCase_UDF(), DataTypes.StringType);

И тогда вы можете использовать его так:

dataset.withColumn("lower", functions.callUDF("lowercase_udf", functions.col("value")));

Это даст вам что-то вроде этого:

+--------+-------+
|value   |lower  |
+--------+-------+
|Michael |michael|
|Andy    |andy   |
|Justin  |justin |
+--------+-------+

Надеюсь, это поможет!

...