当我每天运行它时,将附加多存储的 Pig 输出



我有一组数据,我在"type"列上运行了多存储命令,现在我在hdfs中有这些路径:"/output/type1/","/output/type2/","/output/type3/"等。

现在每天我在"type"列上运行一个带有多存储命令的脚本来生成"/tmp/type1/"、"/tmp/type2/"、"/tmp/type3/"等(此处的类型可以是 <或>

由于 Pig 不允许我提供现有目录的输出路径,因此每天运行的脚本是/tmp/。有没有办法在正确的"类型"子目录下将/tmp/与/output/结合起来?

预期在/output/type1/下有/tmp/type1/file 作为/output/type1/file等等。这样我就可以删除/tmp 并再次运行脚本。

任何帮助,不胜感激。提前谢谢。

Pig 无法处理目录,只能调用 fs 命令。将临时目录映射到最终目录需要的不仅仅是 Pig 所能做的。您可以在一个小型Java程序中使用文件系统API,并单独或在Oozie工作流程中运行它。

除此之外,您还需要确保附加的文件与现有文件名不同,这不是默认行为,您可以通过以下命令实现它:

 %declare timestamp `date +"%s"` 
 SET mapreduce.output.basename '$timestamp'
 /* here we used the timestamp to get unicity*/

相关内容

  • 没有找到相关文章

最新更新