Hel*_*oui 5 scala apache-spark spark-streaming
我正在使用 Spark (Scala) 来执行每周发生的批处理过程。每天,我们都会收到具有以下架构的销售数据每日提要:日、产品、销售额
每周,我们都会导入该周的所有每日数据,汇总每日销售额,以找出每种产品每周的平均销售额。然后,我们导出一个包含以下标题的文件:Week、product、sales_average(我们将其与之前的每周聚合合并)
这里的问题是我们可以接收已计算聚合的更新。例如,假设我们处于第一周,并且我们已经计算了该周每种产品的周平均值。在下周(第 2 周),我可以收到每日销售行,其中“日”列指的是前一周(第 1 周)而不是第 2 周。因此,已计算的相应产品的 Week1 值不再准确,我们需要再次获取该周和该产品的所有每日数据并再次进行聚合。
最直接(也是最糟糕)的解决方案是每周导入所有数据并计算所有聚合。这显然会导致性能瓶颈,尤其是我们处理的是 2 年的数据。我想做的是:
我读过一些有关结构化流编程、时间窗口的内容,但我对 Spark 很陌生,这一切都感觉有点复杂。因此,任何有关如何解决此问题的帮助将不胜感激。谢谢。
| 归档时间: |
|
| 查看次数: |
7189 次 |
| 最近记录: |