Я пытаюсь создать MapReduce в Hadoop и хочу преобразовать String в IntWritable для него. Я следую приведенным здесь советам: How to convert String object to IntWritable Object in Hadoop. Он советует использоватьHadoop - конструктор IntWritable (int) не загружен
new IntWriteable(Integer.parseInt(someString))
так, что я пытаюсь это
public class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable > {
private final Text wordKey = new Text("");
public void map(LongWritable ikey, Text value, Context context) throws IOException, InterruptedException {
String[] friend = value.toString().split(";");
String[] friendswith = friend[1].split(",");
for (String s : friendswith) {
wordKey.set(friend[0]);
context.write(wordKey, IntWritable(Integer.parseInt(s))); //trying to convert here
}
}
}
но получаю ошибку
The method IntWritable(int) is undefined for the type MyMapper
Согласно документации here он отмечает, что есть застройщик, который принимает вход int
. У меня есть IntWritable
импортирован:
import org.apache.hadoop.io.IntWritable;
Что может привести к том, что я не могу использовать IntWritable(int)
конструктор?
Вы пропускаете 'new' ключевое слово между' context.write (wordKey' и 'IntWritable (Integer.parseInt (s)))' – user3122114