[问题] rmr2 map functon

楼主: swedrf0112 (M)   2014-10-20 19:45:36
[问题类型]:程式咨询
[软件熟悉度]:入门
[问题叙述]:
想使用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

Links booklink

Contact Us: admin [ a t ] ucptt.com