作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下具有5列和若干行的csv文件。但是我只显示前6行。
Date,Food,Vitamin,Protein,NumStudents
01/01/17, Pasta, A, Yes, 560
01/01/17, Pizza, A, Yes, 730
01/01/17, Burrito, C, Yes, 240
02/01/17, Pizza, A, Yes, 340
02/01/17, Pasta, B, Yes, 450
02/01/17, Beef, B, Yes, 450
01/01/17
,我只需要对NumStudents的比萨饼和面食求和,而不必对卷饼进行求和。
01/01/17 1290
02/01/17 790
01/01/17 1530
02/01/17 1240
最佳答案
您可以只在映射器中过滤您感兴趣的类型。这可能看起来像:
public class InputMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
private Text oKey = new Text();
private IntWritable oValue = new IntWritable();
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
String parts[] = value.toString().split(",");
if (parts[1].equals("Pasta") || parts[1].equals("Pizza")) {
oKey.set(parts[0]);
oValue.set(Integer.parseInt(parts[4]));
context.write(oKey, oValue);
}
}
}
关于java - 如何在hadoop mapreduce中选择组合键中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294377/
我是一名优秀的程序员,十分优秀!