如何在猪的单行中为电影镜头数据集制作多行

时间:2015-12-14 06:32:22

标签: apache-pig

我想根据猪的一个字段将一行划分为多行。

实施例: 考虑电影数据集中的一行,如下所示:

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

每个字段由','。

分隔

所需输出如下3个不同的行:

31807,Dot the I(2003),Drama

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

31807,Dot the I(2003),Thriller

任何人都可以帮助我在猪身上获得所需的输出。

1 个答案:

答案 0 :(得分:3)

以下逻辑将帮助您。

 /* 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)

 */