当我每天 运行 时,要追加 Multistorage 的 Pig 输出
Pig output of Multistorage to be appended when I run it everyday
我有一组数据,运行 列 'type' 上的多存储命令现在我在 hdfs 中有这些路径:“/output/type1/ ", "/output/type2/", "/output/type3/"等
现在,
每天我 运行 在列 'type' 上使用多存储命令的脚本来生成“/tmp/type1/”,“/tmp/type2/", "/tmp/type3/"等
(此处的类型可以是 < 或 = 主输出中已经存在的类型)。
由于 Pig 不允许我提供已存在目录的输出路径,因此我每天 运行 的脚本是 /tmp/。
有没有办法在正确的 'type' 子目录下将 /tmp/ 与 /output/ 合并?
预期 /tmp/type1/file 在 /output/type1/ 下作为 /output/type1/file
所以 on.This 我可以再次删除 /tmp 和 运行 脚本。
感谢任何帮助。
提前致谢。
Pig 无法处理目录,但会在小型 java 程序中调用 fs commands. Mapping temporary directories to the final directories requires more than what can Pig do. You can use the FileSystem Api 并单独或在 Oozie 工作流程中 运行 调用。
除此之外,您还需要确保附加文件的文件名与现有文件的文件名不同,这不是默认行为,您可以通过以下命令实现:
%declare timestamp `date +"%s"`
SET mapreduce.output.basename '$timestamp'
/* here we used the timestamp to get unicity*/
我有一组数据,运行 列 'type' 上的多存储命令现在我在 hdfs 中有这些路径:“/output/type1/ ", "/output/type2/", "/output/type3/"等
现在, 每天我 运行 在列 'type' 上使用多存储命令的脚本来生成“/tmp/type1/”,“/tmp/type2/", "/tmp/type3/"等 (此处的类型可以是 < 或 = 主输出中已经存在的类型)。
由于 Pig 不允许我提供已存在目录的输出路径,因此我每天 运行 的脚本是 /tmp/。 有没有办法在正确的 'type' 子目录下将 /tmp/ 与 /output/ 合并?
预期 /tmp/type1/file 在 /output/type1/ 下作为 /output/type1/file 所以 on.This 我可以再次删除 /tmp 和 运行 脚本。
感谢任何帮助。 提前致谢。
Pig 无法处理目录,但会在小型 java 程序中调用 fs commands. Mapping temporary directories to the final directories requires more than what can Pig do. You can use the FileSystem Api 并单独或在 Oozie 工作流程中 运行 调用。
除此之外,您还需要确保附加文件的文件名与现有文件的文件名不同,这不是默认行为,您可以通过以下命令实现:
%declare timestamp `date +"%s"`
SET mapreduce.output.basename '$timestamp'
/* here we used the timestamp to get unicity*/