【问题标题】:Merge Time Series in Apache Pig在 Apache Pig 中合并时间序列
【发布时间】:2015-03-11 08:01:56
【问题描述】:

我认为我的问题是微不足道的,但我是 Pig 的新手,我在文档中看不到明显的答案。我有两个想要合并的时间序列。假设其中一个只是事件流X

100 A
200 B
300 C
400 D
500 E
600 F

然后另一个表示当某些状态发生变化时,称之为Y

 50 on
250 off
350 on
450 off

我想用来自Y 的当前on/off 状态标记第一个时间序列X。所以我特别想要:

100 A on
200 B on
300 C off
400 D on
500 E off
600 F off

如果我用另一种语言写这篇文章,我可能会执行合并排序 XY 之类的操作,然后通过一次,记住最后一个 on/off 状态并标记 X 条目。

在 Pig 中执行此操作的最佳方法是什么?我收到了一些现有代码,它使用XYJOIN 然后过滤它,但我认为连接引起的数据膨胀是不必要的。

【问题讨论】:

    标签: mapreduce apache-pig time-series


    【解决方案1】:

    我认为没有一个非常简单的解决方案。这是一些伪代码:

    X1 = Rank X;
    Y1 = Rank Y;
    
    XY = JOIN X1 BY BY $0 LEFT OUTER, Y1 BY $0;
    
    SPLIT XY INTO status_known IF status is not null, status_unknown OTHERWISE;
    
    --Y2: Find out last status in Y1 (with Group all, max)
    --Y3: Cross status_unknown with Y2
    
    UNION status_known and Y3
    

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 2015-01-04
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      相关资源
      最近更新 更多