[HADOOP] MapReduce : 줄 바꿈없이 키 / 값 쌍을 출력하려면 어떻게해야합니까?
HADOOPMapReduce : 줄 바꿈없이 키 / 값 쌍을 출력하려면 어떻게해야합니까?
내 문제에 0 감소 접근 방식을 사용하고 있습니다. 한 파일의 데이터를 전처리 한 다음 다른 파일로 쓰려고하지만 새 줄과 탭 구분 기호는 없습니까? 전처리에서 빼낸 것과 동일한 파일 형식으로 데이터를 처리 한 맵 작업을 어떻게 출력 할 수 있습니까? 즉, 나는 다음과 같은 것을 가지고있다 :
전처리 :
<TITLE> Herp derp </Title> I am a major general
후 처리:
Herp
Derp
I
am
a
major
general
내가하고 싶은 것은 이것입니다 :
Herp Derp I am a major general
이 문제는 다음 코드 줄과 관련이 있다고 생각합니다.
job.setOutputFormatClass(TextOutputFormat.class);
그러나 내가 시도했을 때, 매우 순진하게 다음과 같은 일을했습니다.
job.setOutputFormatClass(null);
분명히 작동하지 않습니다. 이 작업을 수행하는 데 사용할 수있는 형식 클래스가 있습니까? 그렇지 않다면 원하는대로 모든 것을 출력하기 위해 어떻게 자신의 클래스를 작성할 수 있습니까? 나는 hadoop과 map reduce를 처음 사용합니다.
아래에 내지도 기능을 포함 시켰습니다. 맵과 감속기 사이를 정렬 할 때 Reduce를 사용하고 싶지 않습니다.
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
//Did preprocessing here, irrelevant to my problem
context.write(word, null);
}
}
또한, 나는 이것을 googled하고 apache hadoop api를 읽고 대답을 빛낼 수 있는지 확인했습니다.
해결법
-
==============================
1.매퍼 클래스에서 줄을 개별 단어로 파싱하고 쓰는 대신 전체 줄을
매퍼 클래스에서 줄을 개별 단어로 파싱하고 쓰는 대신 전체 줄을
context.write(word, null);
그렇게하면 줄을 하나씩 보내지 않고 원래 함께 작업하는 전체 문자열을 유지합니다.
따라서 사전 프로세스 작업을 위해 문자열을 잘라낸 다음 context.write 명령으로 보낼 때 다시 묶습니다.
-
==============================
2.매퍼가 단일 입력 행에서 개별 토큰을 포함하는 여러 레코드를 작성하는 경우 출력을 위해 해당 토큰을 단일 행으로 다시 그룹화하는 감속기가 절대적으로 필요합니다. 감속기가 없으면이 작업을 수행 할 수 없습니다.
매퍼가 단일 입력 행에서 개별 토큰을 포함하는 여러 레코드를 작성하는 경우 출력을 위해 해당 토큰을 단일 행으로 다시 그룹화하는 감속기가 절대적으로 필요합니다. 감속기가 없으면이 작업을 수행 할 수 없습니다.
from https://stackoverflow.com/questions/19070640/mapreduce-how-can-i-output-key-value-pair-without-newlines by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Eclipse의 하둡 및 리듀서 수 (0) | 2019.09.12 |
---|---|
[HADOOP] hadoop 작업 관리자 UI는 어디에 있습니까 (0) | 2019.09.12 |
[HADOOP] HBase : / hbase / meta-region-server 노드가 없습니다 (0) | 2019.09.12 |
[HADOOP] hadoop_home이 올바르게 설정되지 않은 이유 (0) | 2019.09.12 |
[HADOOP] Hive가 실패하면 Bash 스크립트 중지 (0) | 2019.09.12 |