我想根据猪的一个字段将一行划分为多行。
实施例: 考虑电影数据集中的一行,如下所示:
(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
任何人都可以帮助我在猪身上获得所需的输出。
答案 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)
*/