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