org.apache.hadoop.mapred.mapper에서 'key k1'의 사용은 무엇입니까?
문제
나는 Apache Hadoop을 배우고 WordCount 예를보고 있었다. org.apache.hadoop.examples.wortcount. 이 예를 이해하지만 변수가 긴 길이의 키 사용되지 않았습니다
(...)
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
String line = value.toString();
StringTokenizer itr = new StringTokenizer(line);
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
output.collect(word, one);
}
}
(...)
이 변수의 사용은 무엇입니까? 누군가 나에게 사용될 간단한 예를 들여 줄 수 있습니까? 감사
해결책
inputformat이 textInputFormat 일 때 키는 현재 입력 파일의 시작부터 바이트 오프셋입니다.
값은 단순히 해당 오프셋의 텍스트 줄입니다.
SequenceFileInputFormat을 사용하면 키는 '레코드의 키 위치로 채워진 것입니다. 가치에 대해 동일합니다.
결론은 키/값 유형이 입력 유형 (텍스트, 시퀀스 파일 등)에 따라 다르다는 것입니다.
CKW
다른 팁
나는 틀릴 수 있지만 (지도/축소 자습서를 읽었지만 아직 실제 프로젝트에 사용하지는 않았지만) 일반적으로 입력 항목의 식별자라고 생각합니다. 예를 들어, 튜플 (파일 이름, 줄 번호). 이 특별한 경우에는 줄 번호가있을 것이며, 단어 수에 관심이 없습니다. 아이디어가 파일 별이 아닌 자격으로 집계 된 단어 계산 (또는 키에 해당 정보가 포함 된 경우 여러 파일의 경우)이라는 아이디어가 사용될 수 있습니다.
제휴하지 않습니다 StackOverflow