访问元组的字段

Posted

技术标签:

【中文标题】访问元组的字段【英文标题】:Accessing fields of Tuples 【发布时间】:2012-06-08 23:19:45 【问题描述】:

我有以下猪脚本: 我的文件 1.txt 有 1 乙2 C 3 D 4

grunt> A = load '1.txt' using PigStorage(' ') as (a:chararray,b:int);  
grunt> B = foreach A generate A.a;  
grunt> dump B;

它给了我以下错误

错误 org.apache.pig.tools.grunt.Grunt - 错误 2997:无法从支持的错误重新创建异常:org.apache.pig.backend.executionengine.ExecException:错误 0:标量在输出。第一:(A,1),第二:(B,2)

【问题讨论】:

【参考方案1】:

您不必将a 引用为A.a。试试这个:

grunt> A = load '1.txt' using PigStorage(' ') as (a:chararray,b:int);  
grunt> B = foreach A generate a;  
grunt> dump B;

C.x 用于从包中抓取“列”。假设C 是一袋物品,那么C.x 将创建一个包含该袋中所有x 的新袋。这不是你想要的。 foreach 正在为您遍历包。

【讨论】:

以上是关于访问元组的字段的主要内容,如果未能解决你的问题,请参考以下文章

元组的详细操作

基本数据类型____元组

基本数据类型____元组

元组的记录作用

元组的基本操作

编程里面元组和数组的区别是啥?