小编Joe*_*ate的帖子

Pig 0.11.1 - 计算时间范围内的组

我有一个数据集,A有时间戳,访问者,URL:

(2012-07-21T14:00:00.000Z, joe, hxxp:///www.aaa.com) 
(2012-07-21T14:01:00.000Z, mary, hxxp://www.bbb.com) 
(2012-07-21T14:02:00.000Z, joe, hxxp:///www.aaa.com) 
Run Code Online (Sandbox Code Playgroud)

我想在一个时间窗口(例如10分钟)内测量每个用户每个用户的访问次数,但是作为一个滚动窗口,按分钟递增.输出将是:

(2012-07-21T14:00 to 2012-07-21T14:10, joe, hxxp://www.aaa.com, 2)
(2012-07-21T14:01 to 2012-07-21T14:11, joe, hxxp://www.aaa.com, 1)
Run Code Online (Sandbox Code Playgroud)

为了简化算术,我将时间戳更改为一天中的分钟,如下所示:

(840, joe, hxxp://www.aaa.com) /* 840 = 14:00 hrs x 60 + 00 mins) */
Run Code Online (Sandbox Code Playgroud)

要通过移动时间窗口迭代'A',我在当天创建一个分钟数据集B:

(0)
(1)
(2)
.
.
.
.
(1440)
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想做的事情如下:

A = load 'dataset1' AS (ts, visitor, uri)
B = load 'dataset2' as (minute)

foreach B {
C = filter A by ts > minute AND ts < minute + …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce range apache-pig

6
推荐指数
1
解决办法
1878
查看次数

标签 统计

apache-pig ×1

hadoop ×1

mapreduce ×1

range ×1