【发布时间】:2015-06-11 11:33:57
【问题描述】:
我有一个制表符分隔的输入文件,我正在从其中读取 Map-Reduce 中的 2 列。 1 列是键和其他值。所以我的要求是,如果值是空白的,即它包含空格或制表符或任何其他字符,即使键也不应该被处理到减速器。总的来说,它应该丢弃该记录并获取下一条具有价值的记录。已经写了下面的代码,但是还是不行。它执行所有记录。它不过滤任何东西。
public static class Map extends Mapper<LongWritable, Text, Text,Text>
{
private Text vis = new Text();
private Text eValue = new Text();
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException
{
String line=value.toString();
String[] arr=line.split("\t");
vis.set(arr[8]);
eValue.set(arr[287]);
if (!eValue.equals("\t") || eValue.equals(" "))
{
context.write(vis,eValue);
}
}
}
感谢任何帮助。提前致谢。
PS:我使用的是 Hadoop-2.6.0
【问题讨论】:
标签: java hadoop if-statement mapreduce hadoop-yarn