【发布时间】:2016-05-25 20:01:57
【问题描述】:
我正在尝试使用条件查询在 Spark 中进行快速扩充。
我有两个 key/val 数据集:“Event Data”和“Session Map”。 “会话映射”用于找出谁在两个时间戳之间使用给定 IP。 “事件数据”是大量事件的集合,带有 IP 和时间戳,需要与“会话映射”相关联,以丰富用户名。
有没有一种有效的方法可以根据 Spark 中的 Session Map 或其他方式丰富事件数据?
会话图:
(IP, start_time, end_time) -> Name
(192.168.0.l, 2016-01-01 10:00:00, 2016-01-01 22:00:00) -> John
(192.168.0.l, 2016-01-01 22:00:01, 2016-01-02 04:35:00) -> Dana
(10.0.0.12, 2016-01-02 06:00:13, 2016-01-02 09:23:24) -> John
...
事件数据:
IP -> timestamp
192.168.0.l, 2016-01-01 10:00:00
192.168.0.l, 2016-01-01 10:00:01
192.168.0.l, 2016-01-01 10:00:02
192.168.0.l, 2016-01-01 10:05:23
...
192.168.0.l, 2016-01-01 22:00:01
192.168.0.l, 2016-01-01 22:12:35
192.168.0.l, 2016-01-01 04:12:00
...
【问题讨论】:
-
这两个集合都适合内存吗?
-
不幸的是,它不适合内存
-
您尝试过常规加入吗?您使用什么 API 来处理您的数据?常规 RDD 还是 DataFrame?
-
我相信 Spark 中的常规加入需要完全匹配。我错了吗?数据是常规 RDD。
-
啊,我没有正确阅读您的问题。我有一个想法,我会发布它作为答案。快速提问,每个 IP 的会话/事件分布是什么?
标签: database hadoop join apache-spark mapreduce