这是我的pig脚本和输入数据,当执行dumpf1时,输出是正确的,但是当执行dumpf2时,输出是()——似乎是空的,输入数据或代码有什么问题吗?
我期望转储f2的输出是(1)、(3)、(5)、(12)。
hadoop fs -text input.txt
({(3),(4),(1),(2),(7),(5),(6)},{(1),(3),(5),(12)})
-- ({(3),(4),(1),(2),(7),(5),(6)},{(1),(3),(5),(12)})
A = load 'input.txt' AS (B1:bag{T:tuple(val:int)},B2:bag{T:tuple(val:int)});
F1 = foreach A generate B1;
F2 = foreach A generate B2;
DUMP F1;
DUMP F2;
output of DUMP F1:
({(3),(4),(1),(2),(7),(5),(6)})
output of DUMP F2:
()
1条答案
按热度按时间h5qlskok1#
默认情况下,load查找制表符(\t)分隔的数据。您可以将tab用作input.txt中的分隔符,也可以基于兴趣分隔符use right函数使用using子句加载数据。
裁判:http://chimera.labs.oreilly.com/books/1234000001811/ch05.html#comments
将input.txt的内容如下,然后尝试执行脚本。您应该能够看到f2的转储结果。
输入.txt: