3

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

有没有办法通过连接到 hdfs 在 R 中做到这一点?换句话说,在 R 脚本的开头,它连接到 Hadoop 并读取数据,然后再次将输出数据上传到 Hadoop。有没有可以使用的包?Hadoop 服务器或 R 中需要进行任何更改吗?

我忘了注意重要的部分:R 和 Hadoop 位于不同的服务器上。

4

2 回答 2

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。

于 2015-10-13T22:14:01.057 回答
0

所以...您找到解决方案了吗?

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

我尝试使用当时对我有用的 webHDFS。你可以在这里找到一个用于 webhdfs 访问的 R 包

该软件包在您需要运行的 CRAN 上不可用:

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

(是的......你将需要 devtools 包)

于 2015-11-27T09:50:31.570 回答