2015-05-21 3 views
1

Я использую Spark 1.3.0 на Java 8. У меня нет проблем с настройкой моего SQLContext и созданием dataframes, искровой DSL довольно плавный. Но я хочу использовать пользовательский UDF.Регистрация SparkSQL UDF в Java8

Согласно документации искрового: https://spark.apache.org/docs/1.3.0/sql-programming-guide.html#udf-registration-moved-to-sqlcontextudf-java--scala

sqlCtx.udf().register("strLen", (String s) -> { s.length(); });

Если это сделать для регистрации UDF. Но мой IDE (IntelliJ) жалуется:

Cannot resolve method 'register(java.lang.String, <lambda expression>)'

Что я делаю неправильно?

ответ

2

Возможно, документация & документация немного не синхронизирована с этой записью, и я склонен идти с документацией в коде, потому что ее часто там, где разработчик делает обновления. Глядя в JavaUDFSuite, я бы попробовал:

sqlContext.udf().register(
    "stringLengthTest", (String str) -> str.length(), DataTypes.IntegerType); 
Смежные вопросы