pig引用

krcsximq  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(376)

我正在学习hadooppig,我一直坚持引用元素。请看下面的例子。

groupwordcount: {group: chararray,words: {(bag_of_tokenTuples_from_line::token: chararray)}}

如果我们有嵌套的元组和包,有人能解释一下如何引用元素吗。
任何更好地理解嵌套引用的链接都会有很大帮助。

mf98qq94

mf98qq941#

让我们做一个简单的演示来理解这个问题。
假设文件“a.txt”存储在hdfs的“/tmp/a.txt”文件夹中
a=使用pigstorage(',')作为加载“/tmp/a.txt”(name:chararray,term:chararray,gpa:float);
卸载a;
(约翰,佛罗里达州,3.9)
(约翰,佛罗里达州,3.7)
(约翰,sp,4.0)
(山猫约翰,3.8)
(玛丽,佛罗里达州,3.8)
(玛丽,佛罗里达州,3.9)
(玛丽,sp,4.0)
(玛丽,sm,4.0)
现在让我们根据一些参数(比如name和term)按别名“a”分组
b=a组(名称、术语);
b排土场;
((约翰,佛罗里达州),{(约翰,佛罗里达州,3.7),(约翰,佛罗里达州,3.9)})
((约翰,山猫),{(约翰,山猫,3.8)})
((约翰,sp),{(约翰,sp,4.0)})
((玛丽,佛罗里达州),{(玛丽,佛罗里达州,3.9),(玛丽,佛罗里达州,3.8)})
((mary,sm),{(mary,sm,4.0)})
((mary,sp),{(mary,sp,4.0)})
描述b;
b:{组:(名称:chararray,术语:chararray),a:{(名称:chararray,术语:chararray,gpa:float)}
现在它已经成为你所要求的问题陈述。让我演示如何访问组元组的元素或元组的元素或两者
c=foreach b生成group.name,group.term,a.name,a.term,a.gpa;
转储c;
(约翰,佛罗里达州,{(约翰),(约翰)},{(佛罗里达州),(佛罗里达州)},{(3.7),(3.9)})
(约翰,山猫,{(约翰)},{(山猫)},{(3.8)})
(约翰,sp,{(约翰)},{(sp)},{(4.0)})
(玛丽,佛罗里达州,{(玛丽),(玛丽)},{(佛罗里达州),(佛罗里达州)},{(3.9),(3.8)})
(玛丽,sm,{(玛丽)},{(sm)},{(4.0)})
(玛丽,sp,{(玛丽)},{(sp)},{(4.0)})
所以我们通过这种方式访问了所有元素。
希望这有帮助

相关问题