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如何为列分配名称?的主要内容,如果未能解决你的问题,请参考以下文章