Apache pig 若一行包含多个相同的分隔符,如何使Pig脚本右键?

Apache pig 若一行包含多个相同的分隔符,如何使Pig脚本右键?,apache-pig,Apache Pig,我的“test.csv”文件中有一行,如下所示: 1987654,文件未上载,请重试,Johnson 我想使用Pig获得如下输出 任务ID 1987654 消息 文件未上载,请重试 用户 Johnson由于所有行的格式都相同,简单的解决方案是将其加载到4个字段中,以逗号作为分隔符,然后使用CONCAT将第2个和第3个字段与逗号连接起来 A = LOAD 'data.txt' USING PigStorage(',') AS (a1:int,a2:chararray,a3:chararray,a4

我的“test.csv”文件中有一行,如下所示:

1987654,文件未上载,请重试,Johnson

我想使用Pig获得如下输出

任务ID
1987654

消息

文件未上载,请重试

用户


Johnson

由于所有行的格式都相同,简单的解决方案是将其加载到4个字段中,以逗号作为分隔符,然后使用CONCAT将第2个和第3个字段与逗号连接起来

A = LOAD 'data.txt' USING PigStorage(',') AS (a1:int,a2:chararray,a3:chararray,a4:chararray);
B = FOREACH A GENERATE a1,CONCAT(CONCAT(a2,','),a3),a4;
DUMP B;

这是唯一的线路吗?其余的数据是什么样子的?不,所有的数据都是这样的,一行接一行。我这里只讲了一行。第一行:1987654,文件未上载,请重试,约翰逊第二行:1987655,文件已上载,请继续,克拉拉第三行…继续,这是有用的一行,如果某行有没有逗号的消息会发生什么情况。例:1987656,错误,亚历克斯。因为信息可以以任何形式出现。它是.csvfile@SwadeepMohanty这行不通,因为你提到所有行的格式都是一样的。