我在配置单元中创建了一个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从蜂巢表中读取数据:
spark.read().jdbc(myurl, "(select level(id) from my_tbl)t", prop);
失败。
如何在level()
api中使用jdbc
。
答案 0 :(得分:0)
将Hive UDF注册为永久功能时,它会与创建它的数据库绑定在一起,并且在调用UDF时也需要指明数据库。因此,在您的情况下,您需要按以下方式调用udf:
spark.read().jdbc(myurl, "(select mydb.level(id) from my_tbl)t", prop);