首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成R和Hadoop (使用JRI)

集成R和Hadoop (使用JRI)
EN

Stack Overflow用户
提问于 2013-01-30 10:13:05
回答 1查看 781关注 0票数 2

我看到了integra和hadoop的一些选项,比如: RHadoop、RHipe、Hadoop、RHive。

我在R方面没有任何经验,但我在Hadoop方面确实有很好的经验。我说的方法可能是不可行的,或者别的什么.

但有谁能分享他们对这种方法的看法-

我们是否可以使用JRI集成R和Hadoop :因为可以从java代码(使用JRI)调用R函数。我们是否可以这样做:用Java编写hadoop程序,如果我们需要R中的一些功能,那么在Java程序中调用R-函数吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-11 21:01:59

实现此工作的步骤如下:

  • 在每个数据节点上安装带有rJava的R。
  • 在map/ using作业的设置函数中,使用

代码:

代码语言:javascript
复制
private String[] Rargs = { "--vanilla" };

private Rengine re = null;
private REXP rn = null;
re = new Rengine(Rargs, false, null);
  • 然后在实际映射中调用R或使用

代码:

代码语言:javascript
复制
rn = re.eval("result<-\"Hello world\"");
if( rn != null ){
            System.out.println("Result is :"+rn.toString());
        }
  • 最后,要运行,请使用以下内容:

代码:

代码语言:javascript
复制
hadoop jar HelloWorld.jar com.example.HelloWorld -files libjri.so,libR.so,libRblas.so  -libjars JRI.jar -Dmapred.child.env="R_HOME=/usr/lib64/R"

您可以在用逗号分隔的-files参数中包含更多的文件,如R文件、数据文件等,它将被传送到分布式缓存中。确保使用re.eval("sapply(\"file.R\",source)");从Java访问文件中的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14601421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档