如何使用不同的pigstorage操作符将数据加载到pig中

kxe2p93d  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(298)

我是apachepig新手,尝试加载测试twitter数据来找出每个用户名的tweet数量。下面是我的数据

format(twitterId,comment,userRefId):

样本数据
当我尝试使用pigstorage作为(',')将数据加载到pig时,它将我的注解部分也分隔为多个字段,因为注解也可以有','。请让我知道如何在pig中正确加载此数据。我正在使用以下命令:

data = LOAD '/home/vinita/Desktop/Material/PIG/test.csv' using PigStorage(',') AS (id:chararray,comment:chararray,refId:chararray);
y1aodyip

y1aodyip1#

将记录加载到一行中,然后将“with |和”替换为|。这将确保字段是分开的,然后使用strsplit获取3个字段。

A = LOAD 'data.txt' AS (line:chararray);
B = FOREACH A GENERATE REPLACE(REPLACE(line,',"','|'),'",','|');
C = FOREACH B GENERATE STRSPLIT($0,'\\|',3);
DUMP C;

编辑:我使用示例文本来运行脚本,效果很好

ru9i0ody

ru9i0ody2#

如果在源数据中更改分隔符是一种选择,我会选择这种方法。使开始和跟踪问题变得更容易。
如果将分隔符更改为|,则代码可能如下所示:

data = LOAD '/home/vinita/Desktop/Material/PIG/test.csv' using PigStorage('|') AS (id:chararray,comment:chararray,refId:chararray);

相关问题