似乎 Pig 阻止我们重用输出目录。在这种情况下,我想编写一个 Pig UDF,它将接受文件名作为参数,在 UDF 中打开文件并将内容附加到该位置的现有文件中。这可能吗?
提前致谢
似乎 Pig 阻止我们重用输出目录。在这种情况下,我想编写一个 Pig UDF,它将接受文件名作为参数,在 UDF 中打开文件并将内容附加到该位置的现有文件中。这可能吗?
提前致谢
这可能是可能的,但我不知道这是可取的。为什么不只是有一个新的输出目录?例如,如果最终您希望所有结果都输入/path/to/results
,STORE
则第一次运行的输出为/path/to/results/001
,下一次运行的输出为/path/to/results/002
,依此类推。通过这种方式,您可以轻松地从任何失败的作业中识别出不良数据,并且如果您希望将所有这些数据放在一起,您只需执行hdfs -cat /path/to/results/*/*
.
如果您实际上不想追加,而只想替换现有内容,则可以使用 Pig 的RMF
shell 命令:
%DEFINE output /path/to/results
RMF $output
STORE results INTO '$output';