[問題] 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