我试图在聚合原则方面理解火花流。 Spark DF基于迷你批次,计算在特定时间窗口内的迷你批次上完成。
假设我们有数据 -
Window_period_1[Data1, Data2, Data3]
Window_period_2[Data4, Data5, Data6]
..
然后首先计算Window_period_1,然后是Window_period_2。如果我需要使用新的传入数据和历史数据,请说明Window_period_new与Window_period_1和Window_period_2中的数据之间的groupby函数,我该怎么做?
另一种看待相同事情的方法是,如果我有一个要求,其中已经创建了一些数据框 -
df1,df2,df3和我需要运行一个聚合,它将涉及来自的数据 df1,df2,df3和Window_period_1,Window_period_2以及所有新的传入流数据
我该怎么做?
答案 0 :(得分:2)
Spark允许您在rdd(带检查点)中存储状态。因此,即使重新启动,作业也会从检查点恢复状态并继续流式传输。
但是,我们遇到了检查点的性能问题(特别是在恢复状态后),所以使用一些外部源(如hbase)实现storint状态是值得的