銷售激勵類減速,MapReduce的,不顯示錯誤,但沒有給出所需的輸出
package mr.map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.FloatWritable;
//import org.apache.hadoop.mapreduce.Mapper;
//import org.apache.hadoop.mapreduce.Reducer;
public class SalesDriver
{
public static void main(String args[]) throws Exception
{
Configuration c=new Configuration();
Job j=new Job(c,"Sales");
j.setJarByClass(SalesDriver.class);
j.setMapperClass(SalesMapper.class);
j.setReducerClass(SalesReducer.class);
//j.setNumReduceTasks(0);
j.setOutputKeyClass(Text.class);
j.setOutputValueClass(FloatWritable.class);
Path in=new Path(args[0]);
Path out=new Path(args[1]);
FileInputFormat.addInputPath(j, in);
FileOutputFormat.setOutputPath(j, out);
System.exit(j.waitForCompletion(true)?0:1);
}
}
銷售映射類
package mr.map;
import java.io.IOException;
//import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.LongWritable;
//import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class SalesMapper extends Mapper<LongWritable, Text, Text, FloatWritable>
{
public void map(LongWritable k, Text v, Context con) throws IOException, InterruptedException
{
String w[]=v.toString().split(" ");
String product=w[3];
//String store=w[2];
//float cost=Integer.parseInt(w[4]);
float costx = Float.parseFloat(w[4]);
//String newline= product+","+store; //","+costx;
//String newline = product;
con.write(new Text(product), new FloatWritable(costx));
}
}
銷售減速類
package mr.map;
import java.io.IOException;
import org.apache.hadoop.io.FloatWritable;
//import org.apache.hadoop.io.IntWritable;
//import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class SalesReducer extends Reducer<Text, FloatWritable, Text, FloatWritable>
{
public void reduce(Text k, Iterable<FloatWritable>vlist, Context con) throws IOException, InterruptedException
{
int tot=0;
for (FloatWritable v:vlist)
{
tot += v.get();
}
//int total= (int)tot;
con.write(new Text(k), new FloatWritable(tot));
}
}
結果MapReduce
我不明白爲什麼所有的結果都出現在一個大的浮點數和全部數字5.7480884E7。
下面是輸入到映射精簡程序的例子:
2012-01-01 09:00 San Jose Men's Clothing 214.05 Amex
2012-01-01 09:00 Fort Worth Women's Clothing 153.57 Visa
2012-01-01 09:00 San Diego Music 66.08 Cash
2012-01-01 09:00 Pittsburgh Pet Supplies 493.51 Discover
2012-01-01 09:00 Omaha Children's Clothing 235.63 MasterCard
2012-01-01 09:00 Stockton Men's Clothing 247.18 MasterCard
2012-01-01 09:00 Austin Cameras 379.6 Visa
2012-01-01 09:00 New York Consumer Electronics 296.8 Cash
2012-01-01 09:00 Corpus Christi Toys 25.38 Discover
2012-01-01 09:00 Fort Worth Toys 213.88 Visa
2012-01-01 09:00 Las Vegas Video Games 53.26 Visa
2012-01-01 09:00 Newark Video Games 39.75 Cash
2012-01-01 09:00 Austin Cameras 469.63 MasterCard
2012-01-01 09:00 Greensboro DVDs 290.82 MasterCard
2012-01-01 09:00 San Francisco Music 260.65 Discover
2012-01-01 09:00 Lincoln Garden 136.9 Visa
2012-01-01 09:00 Buffalo Women's Clothing 483.82 Visa
2012-01-01 09:00 San Jose Women's Clothing 215.82 Cash
2012-01-01 09:00 Boston Cameras 418.94 Amex
2012-01-01 09:00 Houston Baby 309.16 Visa
2012-01-01 09:00 Las Vegas Books 93.39 Visa
2012-01-01 09:00 Virginia Beach Children's Clothing 376.11 Amex
2012-01-01 09:01 Riverside Consumer Electronics 252.88 Cash
2012-01-01 09:01 Tulsa Baby 205.06 Visa
2012-01-01 09:01 Reno Crafts 88.25 Visa
2012-01-01 09:01 Chicago Books 31.08 Cash
2012-01-01 09:01 Fort Wayne Men's Clothing 370.55 Amex
2012-01-01 09:01 San Bernardino Consumer Electronics 170.2 Cash
2012-01-01 09:01 Madison Men's Clothing 16.78 Visa
2012-01-01 09:01 Austin Sporting Goods 327.75 Discover
2012-01-01 09:01 Portland CDs 108.69 Amex
2012-01-01 09:01 Riverside Sporting Goods 15.41 Discover
2012-01-01 09:01 Reno Toys 80.46 Visa
2012-01-01 09:01 Anchorage Music 298.86 MasterCard
這個輸出映射縮減programBaby \t 5.7480884E7 書籍\t 5.743978E7 光盤\t 5.7400252E7 相機\t 5.728862E7 兒童服裝\t 5.7612936E7 計算機\t 5.7303832E7 消費電子\t 5.744192E7 工藝品\t 5.7407532E7 DVDs \t 5.763812E7 Garden \t 5.7528848E7 健康與美容\t 5.7469112E7 男士服裝\t 5.7609916E7 音樂\t 5.7484752E7 寵物用品\t 5.7186328E7 體育用品\t 5.7587608E7 玩具\t 5.7452464E7 視頻遊戲\t 5.750184E7 女裝\t 5。7423576E7 – habeebsiddique