【问题标题】:Pig referencing猪参考
【发布时间】:2017-06-12 03:01:05
【问题描述】:

我正在学习 Hadoop pig,我总是坚持引用元素。请查找以下示例。

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

如果我们有嵌套的元组和包,谁能解释一下如何引用元素。

任何有助于更好地理解嵌套引用的链接都会有很大帮助。

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    让我们做一个简单的Demo来理解这个问题。

    说存储在 HDFS 中“/tmp/a.txt”文件夹中的文件“a.txt”

    A = LOAD '/tmp/a.txt' using PigStorage(',') AS (name:chararray,term:chararray,gpa:float);

    转储 A;

    (约翰,佛罗里达州,3.9)

    (约翰,佛罗里达州,3.7)

    (约翰,sp,4.0)

    (约翰,sm,3.8)

    (玛丽,佛罗里达州,3.8)

    (玛丽,佛罗里达州,3.9)

    (玛丽,sp,4.0)

    (玛丽,sm,4.0)

    现在让我们根据一些参数(例如名称和术语)按此别名“A”进行分组

    B = GROUP A BY(姓名、术语);

    转储 B;

    ((John,fl),{(John,fl,3.7),(John,fl,3.9)})

    ((John,sm),{(John,sm,3.8)})

    ((John,sp),{(John,sp,4.0)})

    ((Mary,fl),{(Mary,fl,3.9),(Mary,fl,3.8)})

    ((Mary,sm),{(Mary,sm,4.0)})

    ((Mary,sp),{(Mary,sp,4.0)})

    描述 B;

    B: {group: (name: chararray,term: chararray),A: {(name: chararray,term: chararray,gpa: float)}}

    现在它已成为您所询问的问题陈述。让我演示一下如何访问组元组的元素或元组的元素或两者兼而有之

    C = foreach B 生成 group.name,group.term,A.name,A.term,A.gpa;

    转储 C;

    (约翰,fl,{(John),(John)},{(fl),(fl)},{(3.7),(3.9)})

    (约翰,sm,{(John)},{(sm)},{(3.8)})

    (约翰,sp,{(John)},{(sp)},{(4.0)})

    (Mary,fl,{(Mary),(Mary)},{(fl),(fl)},{(3.9),(3.8)})

    (Mary,sm,{(Mary)},{(sm)},{(4.0)})

    (Mary,sp,{(Mary)},{(sp)},{(4.0)})

    所以我们通过这种方式访问​​了所有元素。

    希望对您有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2014-07-19
      相关资源
      最近更新 更多