gpt4 book ai didi

java - 集成 R 和 Hadoop(使用 JRI)

转载 作者:可可西里 更新时间:2023-11-01 14:50:29 25 4
gpt4 key购买 nike

我看到了一些集成 R 和 hadoop 的选项,例如:RHadoop、RHipe、Hadoop Sreaming、RHive。

我在 R 方面没有任何经验,但在 Hadoop 方面有很好的经验。我所说的方法可能不可行或其他原因....

但是任何人都可以分享他们对这种方法的看法 -

我们能否使用 JRI 集成 R 和 Hadoop:因为可以从 Java 代码(使用 JRI)调用 R 函数。?我们可以做类似的事情吗:用 Java 编写一个 hadoop mapreduce 程序,如果我们需要 R 中存在的某些功能,那么在 Java Mapreduce 程序中调用该 R-Function?

最佳答案

实现此功能的步骤是:

  • 在每个数据节点上安装 R 和 rJava。
  • 在 map/reduce 作业的设置函数中,使用初始化 R

代码:

private String[] Rargs = { "--vanilla" };

private Rengine re = null;
private REXP rn = null;
re = new Rengine(Rargs, false, null);
  • 然后在实际 map 中调用 R 或使用减少代码

代码:

rn = re.eval("result<-\"Hello world\"");
if( rn != null ){
System.out.println("Result is :"+rn.toString());
}
  • 最后,要运行,请使用类似的东西:

代码:

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 访问 file.R 中的函数

关于java - 集成 R 和 Hadoop(使用 JRI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com