我有一份工作,可以将Avro文件创建到HDFS中,并在文件中附加数据。但是,有时候不会有任何附加数据,在这种情况下我不希望应用程序刷新和关闭文件,而是应该检查文件是否为空(但我认为Avro架构将被写入标题在技术上不是空文件)并删除文件,如果它是空的。
Avro + HDFS lib是否可行?
答案 0 :(得分:3)
在指定作业的输出格式时尝试使用LazyOutputFormat。它会懒惰地创建输出,这意味着只有输出存在时才会创建输出文件。
所以不要写像: job.setOutputFormatClass(TextOutputFormat.class);
您可以像这样使用LazyOutputFormat: LazyOutputFormat.setOutputFormatClass(job,TextOutputFormat.class);