Hadoop streaming - remova a guia à direita da saída do redutor

Eu tenho um trabalho de streaming hadoop cuja saída não contém pares de chave / valor. Você pode pensar nisso como pares de valor único ou pares somente de chave.

Meu redutor de streaming (um script php) está exibindo registros separados por novas linhas. O streaming do Hadoop trata isso como uma chave sem valor e insere uma guia antes da nova linha. Essa guia extra é indesejada.

Como faço para removê-lo?

Eu estou usando o hadoop 1.0.3 com o AWS EMR. Eu baixei a fonte do hadoop 1.0.3 e encontrei este código em hadoop-1.0.3 / src / contrib / streaming / src / java / org / apache / hadoop / streaming / PipeReducer.java:

reduceOutFieldSeparator = job_.get("stream.reduce.output.field.separator", "\t").getBytes("UTF-8");

Então eu tentei passar-D stream.reduce.output.field.separator= como um argumento para o trabalho sem sorte. Eu também tentei-D mapred.textoutputformat.separator= e-D mapreduce.output.textoutputformat.separator= sem sorte.

Eu procurei no google claro e nada que eu encontrei funcionou. Um resultado da pesquisa até afirmou que não havia nenhum argumento que pudesse ser passado para alcançar o resultado desejado (embora a versão do hadoop nesse caso fosse realmente muito antiga).

Aqui está o meu código (com quebras de linha adicionadas para facilitar a leitura):

hadoop jar streaming.jar -files s3n://path/to/a/file.json#file.json
    -D mapred.output.compress=true -D stream.reduce.output.field.separator=
    -input s3n://path/to/some/input/*/* -output hdfs:///path/to/output/dir
    -mapper 'php my_mapper.php' -reducer 'php my_reducer.php'