来自Hive UDF / UDAF的JRI

时间:2013-05-29 18:33:04

标签: r hadoop hive rjava

我在某些数据节点上安装了R,并且可以编写Map reduce作业以通过JRI调用R.

接下来,为了通过hive查询调用R,我覆盖GenericUDAFEvaluator中的terminate方法并在那里创建Rengine对象。

旧的mapred工作要求我在-Dmapred.child.env="R_HOME=/usr/lib64/R"工作之前完成。{/ p>

当我在hive中执行此操作时(通过set mapred.child.env =“R_HOME = / usr / lib64 / R”;)然后运行查询,作业将失败。

更一般地说,这可以从蜂巢中获得成功:

 select count(*) from some_table limit 10;

但这失败了:

 set mapred.child.env='abc=pqr';
 select count(*) from some_table limit 10;

我有hive-hwi-0.9.0-cdh4.1.1.jarhadoop-2.0.0-cdh4.1.1

1 个答案:

答案 0 :(得分:1)

我从set语句中删除了引号并且它有效。所以:

set mapred.child.env=abc=pqr;

select count(*) from some_table limit 10;

这有效