org.apache.hadoop.mapred.mapper에서 'key k1'의 사용은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/778497

  •  13-09-2019
  •  | 
  •  

문제

나는 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

다른 팁

나는 틀릴 수 있지만 (지도/축소 자습서를 읽었지만 아직 실제 프로젝트에 사용하지는 않았지만) 일반적으로 입력 항목의 식별자라고 생각합니다. 예를 들어, 튜플 (파일 이름, 줄 번호). 이 특별한 경우에는 줄 번호가있을 것이며, 단어 수에 관심이 없습니다. 아이디어가 파일 별이 아닌 자격으로 집계 된 단어 계산 (또는 키에 해당 정보가 포함 된 경우 여러 파일의 경우)이라는 아이디어가 사용될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top