Apache pig 如何从电影镜头数据集的pig中的单行生成多行

Apache pig 如何从电影镜头数据集的pig中的单行生成多行,apache-pig,Apache Pig,我想根据pig中的字段将一行划分为多行 例如: 考虑电影数据集中的一行如下: (31807,Dot the I(2003),戏剧|黑色电影|惊悚片) 每个字段由“,”分隔 在3个不同的行中,所需的输出如下所示: 31807,《圆点一号》(2003),戏剧 31807,Dot I(2003),黑色电影 31807,《圆点I》(2003),惊悚片 任何人都可以帮助我获得所需的pig输出。以下逻辑将帮助您 /* Input (31807,Dot the I (2003),Drama|F

我想根据pig中的字段将一行划分为多行

例如: 考虑电影数据集中的一行如下:

(31807,Dot the I(2003),戏剧|黑色电影|惊悚片)

每个字段由“,”分隔

在3个不同的行中,所需的输出如下所示:

31807,《圆点一号》(2003),戏剧

31807,Dot I(2003),黑色电影

31807,《圆点I》(2003),惊悚片


任何人都可以帮助我获得所需的pig输出。

以下逻辑将帮助您

 /* Input 

     (31807,Dot the I (2003),Drama|Film-Noir|Thriller)

 */

 list = LOAD '/user/cloudera/movies.txt' USING PigStorage(',') AS(id:int,name:chararray,generes:chararray);

 list_each = FOREACH list GENERATE id,name, flatten(TOKENIZE(generes,'|'));

 dump list_each;


 /* Output 

    (31807,Dot the I (2003),Drama)
    (31807,Dot the I (2003),Film-Noir)
    (31807,Dot the I (2003),Thriller)

 */

下面的逻辑将帮助您

 /* Input 

     (31807,Dot the I (2003),Drama|Film-Noir|Thriller)

 */

 list = LOAD '/user/cloudera/movies.txt' USING PigStorage(',') AS(id:int,name:chararray,generes:chararray);

 list_each = FOREACH list GENERATE id,name, flatten(TOKENIZE(generes,'|'));

 dump list_each;


 /* Output 

    (31807,Dot the I (2003),Drama)
    (31807,Dot the I (2003),Film-Noir)
    (31807,Dot the I (2003),Thriller)

 */