在apachepig中,如何将列序列化为行?

pexxcrt2  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(516)

在apachepig中,我想将变量中的列序列化为行。更具体地说:
数据,加载到变量中,查看(通过 DUMP )就像

(val1a, val2a,.... )
(val1b, val2b,val3b,.... )
(val1c, val2c,.... )
.
.
.

我想把它变成

(val1a)
(val2a)
.
.
.
(val1b)
(val2b)
(val3b)
.
.
.
(val1c)
(val2c)
.
.
.

因此,每列都必须“序列化”成行,然后再添加这些行。请注意:我不一定知道每行有多少列。
我怎么能用Pig拉丁语?在python中很容易,但我不知道如何在pig中实现。我尝试了不同的方法 foreach ... generate 构造,但无法使其工作。

0vvn1miw

0vvn1miw1#

展开元组并创建多个元组(每个元组包含一个字段)的一种方法:

$ cat data.txt
val1a,val2a,val3a,val4a,val5a,val6a,val7a
val1b,val2b,val3b
val1c,val2c
A = load 'data.txt' using PigStorage(',');
B = foreach A generate FLATTEN(TOBAG(*));
dump B;

(val1a)
(val2a)
(val3a)
(val4a)
(val5a)
(val6a)
(val7a)
(val1b)
(val2b)
(val3b)
(val1c)
(val2c)

注意:您也可以查看这些类似的帖子:
在pig中将一个元组拆分为多个元组
apache pig数据透视表

相关问题