import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
public class ADDMapper extends MapReduceBase implements Mapper<LongWritable,
Text,Text,LongWritable>
{ @Override
public void map(LongWritable key, Text value,OutputCollector<Text, LongWritable> output, Reporter r)throws IOException
{
String s=value.toString();
char[] words=s.toCharArray();
int wno=0;
int ino=0;
for(int i=0;i<words.length;i++)
{
String temp="";
for(int j=ino;j<words.length;j++)
{
if(words[j]!=' ')
{ temp+=words[j];
}
else
{
wno=j;
if(temp!="")
{
ino=ino + key; //////POINT OF ERROR
output.collect(new Text(temp),new LongWritable(ino));
}
temp="";
ino=wno+1;
break;
}
}
}
}
}Hadoop Map-Reduce картографа программирование
Я хочу, чтобы получить значение индекса каждой строки, отсортированные по строке.
Вышеприведенный код не дает значения индекса и не перетаскивает строки. let входной файл: привет как вы привет я прав. как ваша работа. привет, ты в порядке.
выход: утра 50 являются 7,33 привет 0,30,44 как 3,14 . .
Не могли бы вы (а) правильно форматировать свой код и (б) НЕ ПРОСИТЕ ВОПРОСЫ В КАПС, пожалуйста? Кроме того, прочитайте [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) для получения дополнительных советов. Ваш вопрос, как есть, получит мало ответов. –