[HADOOP] hadoop의 여러 폴더에 쓰기?
HADOOPhadoop의 여러 폴더에 쓰기?
내 출력을 다른 폴더로 감속기에서 분리하려고합니다.
My dirver has the following code:
FileOutputFormat.setOutputPath(job, new Path(output));
//MultipleOutputs.addNamedOutput(job, namedOutput, outputFormatClass, keyClass, valueClass)
//MultipleOutputs.addNamedOutput(job, namedOutput, outputFormatClass, keyClass, valueClass)
MultipleOutputs.addNamedOutput(job, "foo", TextOutputFormat.class, NullWritable.class, Text.class);
MultipleOutputs.addNamedOutput(job, "bar", TextOutputFormat.class, Text.class,NullWritable.class);
MultipleOutputs.addNamedOutput(job, "foobar", TextOutputFormat.class, Text.class, NullWritable.class);
And then my reducer has the following code:
mos.write("foo",NullWritable.get(),new Text(jsn.toString()));
mos.write("bar", key,NullWritable.get());
mos.write("foobar", key,NullWritable.get());
But in the output, I see:
output/foo-r-0001
output/foo-r-0002
output/foobar-r-0001
output/bar-r-0001
But what I am trying is :
output/foo/part-r-0001
output/foo/part-r-0002
output/bar/part-r-0001
출력 / foobar / part-r-0001
어떻게해야합니까? 감사
해결법
-
==============================
1.이 MultipleOutputs를 의미하는 경우 가장 간단한 방법은 다음 중 하나를 수행하는 것입니다.
이 MultipleOutputs를 의미하는 경우 가장 간단한 방법은 다음 중 하나를 수행하는 것입니다.
귀하의 경우, 포인트 1이므로 다음을 변경하십시오 -
mos.write("foo",NullWritable.get(),new Text(jsn.toString())); mos.write("bar", key,NullWritable.get()); mos.write("foobar", key,NullWritable.get());
에,
mos.write("foo",NullWritable.get(),new Text(jsn.toString()), "foo/part"); mos.write("bar", key,NullWritable.get(), "bar/part"); mos.write("foobar", key,NullWritable.get(), "foobar/part");
여기서 "foo / part", "bar / part"및 "foobar / part"는 baseOutputPath에 해당합니다. 따라서 디렉토리 foo, bar 및 foobar가 생성되고 그 part-r-xxxxx 파일 내에 생성됩니다.
위의 2 번 지점을 시도해 볼 수도 있습니다. 실제로는 이름이 지정된 출력이 필요하지 않습니다.
필요한 경우 더 명확히하기 위해 나에게 연락하십시오.
from https://stackoverflow.com/questions/19328136/writing-to-multiple-folders-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] CSV를 SequenceFile로 변환 (0) | 2019.07.22 |
---|---|
[HADOOP] hiveserver2 시작하기 (0) | 2019.07.22 |
[HADOOP] 새로운 데이터가 HDFS에 추가되었는지 어떻게 알 수 있습니까? (0) | 2019.07.22 |
[HADOOP] PIG에서 GROUP과 COGROUP의 차이점은 무엇입니까? (0) | 2019.07.22 |
[HADOOP] 스파크 예외 : 행을 쓰는 동안 작업을 수행하지 못했습니다. (0) | 2019.07.22 |