上篇中我们介绍了rhdfs插件,R语言通过它可以加载和操作hdfs,这里为大家继续介绍Rhadoop的另一个插件rmr2,它能够在计算过程调用MapReduce,来看下如何使用:
1 安装
下载安装文件 rmr2_2.1.0.tar.gz,在bash环境本地安装
bash> R CMD INSTALL rmr2_2.1.0.tar.gz
注意: 如果是分布式环境,需要在所有datanode节点进行安装R语言 Rjava插件和jdk环境,否则在运行时会报错。
2 测试
测试方法很简单,由于mapreduce也需要操作hdfs 因此rmr2封装了新的一套函数 from.dfs() 和 to.dfs() 来读取写入hdfs,这里的操作函数对写入hdfs的数据进行了压缩,所以不能和rhdfs插件混用
测试读取和写入功能
R> from.dfs(to.dfs(1:10))
测试MapReduce功能
R> from.dfs(mapreduce(to.dfs(1:100)))
能够输出结果且无报错日志就成功了哦
3 用MapReduce求平均值
from.dfs(mapreduce(input = to.dfs(1:100),map = function(k, v) cbind(v, mean(v))))
我这里的map和reduce函数偷了懒,熟悉R语言的用户可以自行编写map()和reduce()来做更多的统计和计算,来尝试用R+MapReduce实现一个wordcount功能
本文分享自 智能工场AIWorkshop 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!