3
我是HDFS和MapReduce的新手,並試圖計算調查統計。輸入文件的格式如下:年齡點性別類別 - 所有4個都是數字。這是正確的開始:Hadoop和MapReduce
public static class MapClass extends MapReduceBase
implements Mapper<IntWritable, IntWritable, IntWritable, IntWritable> {
private final static IntWritable Age = new IntWritable(1) ;
private IntWritable AgeCount = new IntWritable() ;
public void map(Text key, Text value,
OutputCollector<IntWritable, IntWritable> output,
Reporter reporter) throws IOException {
AgeCount. set(Integer. parseInt(value. toString())) ;
output. collect(AgeCount, Age) ;
}
}
我的問題:1。 這是一個正確的開始? 2.如果我想收集像Sex,Points這樣的其他屬性 - 我會添加另一個output.collect語句嗎?我知道我必須閱讀該行並將其分成屬性。 3.它說實現映射器 - 我做了所有4 IntWritable是否正確?
也許你會是更好地與豬http://pig.apache.org/docs/r0.8.0/piglatin_ref1.html? – wlk 2011-04-18 20:55:16
這個問題已經過時了,如果有人發現這個問題,我無法拒絕留下評論。我認爲正確的實施完全取決於你想要計算哪種「調查統計」。例如。你想知道所有參與者的平均年齡?或者你想知道在3歲(15-17,18-20,21-23,...)範圍內按年齡分組的參加者的平均分數?這些信息對於定義Mapper的正確輸出非常重要。 – 2012-06-27 08:28:46