我有一个Pig脚本,可以加载多个输入文件。当我想从文件tagsource
或tagfile
获取每个输入记录的输入文件名时,它只会拾取第一个文件名,但包含两个文件中的数据。
示例:
I_STREAM = LOAD '/tmp/' USING PigStorage(';','-tagFile') AS (filename, f1, f2, f3);
DUMP I_STREAM;
文件内容:
/tmp$ cat ./file1.txt
1;1;1
/tmp$ cat ./file2.txt
2;2;2
当前输出:
(file1.txt, 1,1,1)
(file1.txt, 2,2,2)
预期输出:
(file1.txt, 1,1,1)
(file2.txt, 2,2,2)
答案 0 :(得分:2)
可能是因为你的文件很小,而且它们正在合并? 文档指定将“pig.splitCombination”设置为false。 http://pig.apache.org/docs/r0.10.0/api/org/apache/pig/builtin/PigStorage.html