R-Hadoop集成 - 如何将R连接到远程hdfs

时间:2015-10-09 20:20:56

标签: r hadoop hdfs rhadoop

我有一个案例,我将在将从Hadoop下载的数据上运行R代码。然后,R代码的输出也将上传回Hadoop。目前,我手动完成,我想避免手动下载/上传过程。

有没有办法可以通过连接到hdfs在R中执行此操作?换句话说,在R脚本的开头,它连接到Hadoop并读取数据,然后最终将输出数据再次上传到Hadoop。有没有可以使用的包裹? Hadoop服务器或R?

中需要进行哪些更改

我忘记了重要的部分:R和Hadoop在不同的服务器上。

2 个答案:

答案 0 :(得分:0)

安装软件包rmr2,你可以选择 from.dfs 这个函数来解决你从HDFS获取数据的要求,如下所述:

input_hdfs <- from.dfs("path_to_HDFS_file",format="format_columns")

要将结果存储回HDFS,您可以这样做 write.table(data_output,file=pipe(paste('hadoop dfs -put -', path_to_output_hdfs_file, sep='')),row.names=F,col.names=F,sep=',',quote=F)

(或) 您可以使用rmr2 to.dfs 功能将其存储回HDFS。

答案 1 :(得分:0)

那么......你找到了解决方案吗?

几个月前,我偶然发现了同样的情况。在使用Revolution Analytics软件包摆弄一段时间之后,我无法找到一种方法让它在R和Hadoop位于不同服务器上的情况下工作。

我尝试使用webHDFS,当时为我工作。 您可以找到webhdfs acess here

的R包

您需要运行的CRAN上没有该软件包:

devtools::install_github(c("saurfang/rwebhdfs"))

(是的......你需要devtools套餐)