我从自定义Hive的UDF访问外部资源(数据库)的内容是什么,将凭据传递给UDF的最佳方法是什么?
我尝试通过SET设置属性:
SET my.udf.credentials=...;
SELECT myUdf(someColumn) FROM someTable;
并在GenericUDAFEvaluator的init方法中通过HiveConf访问它们,但它不起作用。有什么建议吗?
答案 0 :(得分:3)
我希望你使用的是Hive-0.11。
GenericUDAFEvaluator
类的方法为configure(MapredContext)。
引用一位伟人:
此外,使用MapredContext设置GenericUDAFEvaluator 初始化。这只在MapRedTask的运行时调用。
MapredContext
类的方法为getJobConf。
全部放在一起:
public void configure(MapredContext mapredContext) {
String credentials = mapredContext.getJobConf().get("my.udf.credentials");
}