【问题标题】:Pig Latin logical test on aggregates聚合的 Pig Latin 逻辑测试
【发布时间】:2017-01-11 18:30:45
【问题描述】:

我是一名高级开发人员,但对 Pig 不熟悉。

我们有一个在 Pig Latin 中构建度量的用例,如下所示

(每月购买商品和上个月购买商品)的客户数量/上个月购买商品的客户数量

第一步似乎是使用 FOREACH GROUP GENERATE COUNT(Purchases) 生成客户计数;并将其写入文件,然后再次将其读回

当我再次读回数据时,是否有一种方法可以让每个 比较当前行(现在将是按月汇总)和上一行

可能应该在数据被写出并再次读回之前对数据进行透视,并且每一列与“上一个”相比从左到右而不是逐行?

pig 中的 case 语句可以有这样的东西吗

案例(customerboolean_has_sales_february + customerboolean_has_sales_january)

2 countsalesfeb+ countalesjan/countsalesjanuary 1个空 0 空

当月骑车和上月骑车的顾客/上月骑车的顾客总数

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    1)

    • 将文件两次加载到关系 A 和关系 B 中。

    • 将关系 A 和 B 按月份排序。

    • 使用 RANK 生成行号。

    • 从关系 B 中删除顶部记录。

    • 在关系 B 上使用 RANK 来获得新的关系 B_New

    • 在行号上加入 A 和 B_New。

    • 为每一行从列中生成您想要的结果。

    我已经回答了类似的问题here

    2)

    *pig 中的 case 语句可以有这样的东西吗? 案例(customerboolean_has_sales_february + customerboolean_has_sales_january) *

    • 是的。

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      相关资源
      最近更新 更多