hadoop集成-如何将r连接到远程hdfs

8ftvxx2r  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(327)

我有一个案例,我将在hadoop下载的数据上运行r代码。然后,r代码的输出也将上传回hadoop。目前,我正在做它手动,我想避免这种手动下载/上传过程。
有没有一种方法可以通过连接到hdfs在r中实现这一点?换句话说,在r脚本的开头,它连接到hadoop并读取数据,最后它再次将输出数据上传到hadoop。有可以使用的 Package 吗?hadoop服务器或r中需要做什么更改?
我忘了注意重要的一点:r和hadoop在不同的服务器上。

svmlkihl

svmlkihl1#

所以。。。你找到解决办法了吗?
几个月前,我偶然发现了同样的情况。在摆弄了一段时间的revolution分析包之后,我找不到一种方法让它在r和hadoop位于不同服务器上的情况下工作。
我尝试使用webhdfs,这在当时对我很有用。你可以在这里找到一个webhdfs访问的r包
程序包在您需要运行的cran上不可用:

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

(是的。。。您将需要devtools包)

p8ekf7hl

p8ekf7hl2#

安装包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) (或者)可以使用rmr2to.dfs函数将数据存储回hdfs。

相关问题