我是Apache Pig的新手,并试图加载测试Twitter数据,以找出每个用户名的推文数量。以下是我的数据
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);
答案 0 :(得分:0)
将记录加载到一行中,然后将“with | and”替换为|。这将确保字段分离,然后使用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;
修改强> 我使用示例文本来运行脚本并且工作正常。请参阅下面的
答案 1 :(得分:0)
如果更改源数据中的分隔符是一个选项,我会去那条路线。这使得开始和追踪问题可能要容易得多。
如果将分隔符更改为|,则代码可能如下所示:
data = LOAD '/home/vinita/Desktop/Material/PIG/test.csv' using PigStorage('|') AS (id:chararray,comment:chararray,refId:chararray);