zar*_*zyk 6 apache-spark spark-streaming
我正在尝试解决Spark Streaming中的一个(简化的)问题:假设我有一个用户做的事件日志,其中每个事件都是一个元组(用户名,活动,时间),例如:
("user1", "view", "2015-04-14T21:04Z")
("user1", "click", "2015-04-14T21:05Z")
Run Code Online (Sandbox Code Playgroud)
现在我想收集用户的事件来做一些分析.假设输出是对以下内容的一些分析:
("user1", List(("view", "2015-04-14T21:04Z"),("click", "2015-04-14T21:05Z"))
Run Code Online (Sandbox Code Playgroud)
这些事件应该保存2个月.在此期间,可能会有大约500万这样的事件,以及数以百万计的独特用户,这些都是这里的关键.
我的问题是:
updateStateByKey
当我有数百万个密钥存储时,在DStream上做这样的事情是否可行?DStream.window
这里没用,当我有2个月的长度窗口,并希望有几秒的幻灯片?PS我发现,updateStateByKey
每个幻灯片上的所有键都会调用它,这意味着每隔几秒就会调用数百万个时间.这让我对这个设计产生了怀疑,我宁愿考虑以下替代解决方案:
小智 0
看来您需要一个指数衰减的窗口。
您可以在Rajaraman、Anand 和 Jeffrey David Ullman 的著作中读到有关他们的内容。海量数据集的挖掘。剑桥大学出版社,2011 年。请参阅第 4.7 节,特别是第 4.7.3 节以了解实施细节。
归档时间: |
|
查看次数: |
568 次 |
最近记录: |