gpt4 book ai didi

hadoop - Pig Latin:加载一个非常简单的包

转载 作者:行者123 更新时间:2023-12-02 21:09:17 26 4
gpt4 key购买 nike

我写这封信是因为今天我遇到了一个问题,尽管到处搜索并尝试了许多不同的语句,但我无法以任何方式解决。
我有这个输入文件:

3 {(car pen house glass)}
5 {(battery phone)}
6 {(the)}

(我想澄清一下,我已经在原始文件中添加了'('和')',因为它们丢失了)。
我的目标只是将文件(使用LOAD)加载到变量中并转储(使用DUMP)。

我在下面显示我的尝试及其相对的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)})

你有解决的主意吗?

提前致谢。

最佳答案

这里的问题是您使用''作为分隔符,并且包中包含''。一种解决方法是将记录加载到一行中,然后使用STRSPLIT将行拆分为2个字段。

wc = LOAD 'input.txt' AS (line:chararray);
wc_new = FOREACH wc GENERATE STRSPLIT(line,' ',2);
DUMP wc_new;

关于hadoop - Pig Latin:加载一个非常简单的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40821436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com