2014-01-21 65 views
1

我该如何从定制Hive的UDF访问外部资源(数据库),将凭据传递给UDF的最佳方式是什么?是否可以配置Hive的UDF?

我试图通过设置来设置属性:

SET my.udf.credentials=...; 
SELECT myUdf(someColumn) FROM someTable; 

,并通过HiveConf访问它们在GenericUDAFEvaluator的init方法,但它不能正常工作。有什么建议么?

回答

3

我希望你使用的是Hive-0.11。

GenericUDAFEvaluator班有方法configure(MapredContext)。前 初始化

另外设置GenericUDAFEvaluator与MapredContext: 引述一个伟大的人。这只在MapRedTask的运行时调用。

MapredContext班有方法getJobConf

JobConf class has the method get

全部放在一起:

public void configure(MapredContext mapredContext) { 
    String credentials = mapredContext.getJobConf().get("my.udf.credentials"); 
}