Pig如何为列分配名称?

Posted

技术标签:

【中文标题】Pig如何为列分配名称?【英文标题】:Pig how to assign name to columns? 【发布时间】:2013-10-24 17:32:54 【问题描述】:

我有一个包含数百列的 csv 文件,当我将文件加载到 Pig 中时,我不想像

那样分配每一列
A = load 'path/to/file' as (a,b,c,d,e......)

因为我会在第二步过滤很多:

B = foreach A generate $0,$2,....;

但是在这里,我可以为 B 的每一列分配一个名称和类型吗?像

B = foreach A generate $0,$2,... AS (a:int,b:int,c:float)

我尝试了上面的代码,但它不起作用。

谢谢。

【问题讨论】:

【参考方案1】:

您必须在每个逗号之间指定它们。

B = foreach A generate $0 as a, $2 as b,...

请注意,它只是假设它已经是的类型。

【讨论】:

谢谢,这行得通!但是我可以使用 sth like: B = foreach A generate (int)$0 as a, (float)$2 as b... 来转换类型吗?

以上是关于Pig如何为列分配名称?的主要内容,如果未能解决你的问题,请参考以下文章