作者swedrf0112 (M)
看板R_Language
标题[问题] rmr2 map functon
时间Mon Oct 20 19:45:36 2014
[问题类型]:程式谘询
[软体熟悉度]:入门
[问题叙述]:
想使用rmr2的mapreduce function
把两个column的值加起来,并且将key值放入指定的向量
目前情形如以下 :
Sys.setenv(...)
library(rhdfs)
hdfs.init()
library(rmr2)
qq=cbind(round(rnorm(10,0,1),3),round(rnorm(10,0,1),3))
#generate data
mapfunction=function(.,data)
{
return( keyval( rep(1:5,each=2) , apply(data,1,sum) ) )
}
from.dfs( mapreduce( input=to.dfs(qq) , map=mapfunction ) )
结果会如:
http://ppt.cc/zgk5 (希望的结果)
但若将资料转成csv file 再put上hdfs之後
资料形式:
http://ppt.cc/HF5m
from.dfs( mapreduce( input="/qq.csv" ,
input.format=make.inpt.format("csv",sep=",") , map=mapfunction ))
结果会变成:
http://ppt.cc/vr4i
也试过将mapfunction改成以下形式 :
mapfunction=function(.,data)
{
kk=rep(1:5,each=2)
vv=apply(data,1,sum)
return( keyval( kk , vv ) )
}
但都没办法像直接to.dfs一样得到想要的结果,
是因为读raw file与to.dfs读取的方式不太一样吗?
先谢谢各位指教!!
[关键字]:rmr2,mapreduce
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 113.28.26.107
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/R_Language/M.1413805538.A.F6B.html