Как зарегистрировать улей udf перед искрой читать таблицу из jdbc - PullRequest
0 голосов
/ 23 октября 2018

Я создал один UDF в кусте, например:

create function mydb.level as 'com.my.udf.level' using jar 
'hdfs://hadoop01:8020/user/hive/udf_jars/dbtools-1.0-SNAPSHOT.jar';

Теперь я хочу прочитать данные из таблицы улья, используя искру, как это:

spark.read().jdbc(myurl, "(select level(id) from my_tbl)t", prop);

это не удалось.Как я могу использовать level() в jdbc API.

1 Ответ

0 голосов
/ 23 октября 2018

Когда вы регистрируете Hive UDF как постоянную функцию, она привязывается к базе данных, в которой она была создана, и вам необходимо указать базу данных также при вызове UDF.Так что в вашем случае вам нужно вызвать udf следующим образом:

spark.read().jdbc(myurl, "(select mydb.level(id) from my_tbl)t", prop);
...