我有一组数据,我在"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*/