我写这篇文章是因为今天我遇到了一个我无法解决的问题,尽管我到处搜索,尝试了很多不同的说法。我有这个输入文件:
3 {(car pen house glass)}
5 {(battery phone)}
6 {(the)}
(我想澄清一下,我在原始文件中添加了“(”和“)”,因为它们丢失了)。我的目标就是将这个文件(使用load)加载到一个变量中并转储它(使用dump)。
我在下面展示了我所做的尝试及其相对转储输出:
wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:bag{(s:chararray)});
(3,)
(5,)
(6,{(the)})
wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:tuple(s:chararray));
(3,)
(5,)
(6,(the))
wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:bag{item:tuple(s:chararray)});
(3,)
(5,)
(6,{(the)})
你有办法解决吗?
提前谢谢。
1条答案
按热度按时间mqkwyuun1#
这里的问题是您使用“”作为分隔符,并且包包含“”。解决方法是将记录加载到一行中,然后使用strsplit将该行拆分为两个字段。