我在 Pig 脚本中有两个关系(我们称之为 A 和 B)。A 和 B 的每个元组都有两个字段,每个元组包含一个时间戳(例如 tsa 和 tsb)和另一个值(a 代表 A,b 代表 B)。每个关系的顺序使得时间戳增加。对于关系 A,两个连续元组的时间戳之间的差异是 5 秒。对于关系 B,这种差异是未知的,可以是 1 秒也可以是 30 分钟(随机事件)。
这是关系 A 的示例(值“a”在 100 和 500 之间):
(1376092800, 112)
(1376092805, 200)
(1376092810, 323)
(1376092815, 365)
(1376092820, 500)
(1376092825, 122)
(1376092830, 222)
(1376092835, 456)
(1376092840, 100)
(1376092845, 277)
这是 B 关系的示例(值“b”在 1000 和 4000 之间):
(1376092800, 3120)
(1376092822, 1200)
(1376092827, 4000)
(1376092830, 1325)
(1376092870, 1700)
(1376093000, 1000)
(1376094532, 2233)
(1376095641, 2460)
(1376095646, 1378)
对于 B 关系的每个元组,我想将每个 A 元组与相同的时间戳或上一个(但低于下一个 B 元组)匹配。与前面的例子一样。我想得到:
(1376092800, 3120) -> (1376092800, 3120, 112, 200, 323, 365, 500)
(1376092822, 1200) -> (1376092822, 1200, 122)
(1376092827, 4000) -> (1376092827, 4000)
(1376092830, 1325) -> (1376092830, 1325, 222, 456, 100, 277)
(1376092870, 1700) -> ...
任何想法?
谢谢你。