我创建了一个Python mapper,我将其作为Hadoop流式MapReduce作业运行。它验证输入并在输入无效时将消息写入输出。
...
# input from STDIN
for line in sys.stdin:
indata = json.loads(line)
try:
jsonschema.validate(indata,schema)
except jsonschema.ValidationError, error:
# validation against schema failed
print error.message
except:
# other exceptions
raise
我的问题:映射器按预期为无效输入写入消息,但它也会创建空的" part-0000x"有效输入的文件。
我想省略空输出文件。我怎样才能做到这一点?
答案 0 :(得分:0)
要省略空输出文件,请使用LazyOutputFormat
类。只有在为特定文件生成至少一条记录时,它才会生成部分文件。
但LazyOutputFormat
在Java API中,您可以找到相应的Python API