我们正在开发Spark框架,其中我们将历史数据移动到RDD集合中.
基本上,RDD是我们进行操作的不可变的只读数据集.基于此,我们已将历史数据移至RDD,并在此类RDD上进行过滤/映射等计算.
现在有一个用例,RDD中的数据子集得到更新,我们必须重新计算这些值.
HistoricalData采用RDD的形式.我根据请求范围创建另一个RDD,并在ScopeCollection中保存该RDD的引用
到目前为止,我已经能够想到以下方法 -
方法1:广播变化:
方法2:为更新创建RDD
方法3:
我曾想过创建流RDD,我不断更新相同的RDD并进行重新计算.但据我所知,它可以从Flume或Kafka获取流.而在我的情况下,值是基于用户交互在应用程序本身中生成的.因此,我无法在上下文中看到流RDD的任何集成点.
关于哪种方法更好或任何其他适合此方案的方法的任何建议.
TIA!