如何在数据库后端发生写入时不断更新 spark 数据帧?
How to have a spark dataframe be constantly updated as writes occur in the db backend?
基本上,我将 Spark 置于数据库前,我想知道如何使用来自后端的新数据不断更新数据框。
我能想到的解决这个问题的简单方法是 运行 每隔几分钟对数据库进行一次查询,但这显然效率低下,并且仍然会导致更新之间的时间数据过时。
我不能 100% 确定我正在使用的数据库是否有此限制,但我认为只是添加了行,没有对现有行进行修改。
DF就是RDD+Schema+很多其他的功能。从基本的 spark 设计来看,RDD 是不可变的。因此,您不能 在 DF 实现后更新它。
在您的情况下,您可以像下面这样混合流媒体 + SQL:
- 在您的数据库中,将数据写入队列以及写入表
- 使用 spark 队列流从队列中消费并创建 Dstreams(RDD 每 x 秒)
- 对于每个传入的RDD,加入现有的DF并创建一个新的DF
基本上,我将 Spark 置于数据库前,我想知道如何使用来自后端的新数据不断更新数据框。
我能想到的解决这个问题的简单方法是 运行 每隔几分钟对数据库进行一次查询,但这显然效率低下,并且仍然会导致更新之间的时间数据过时。
我不能 100% 确定我正在使用的数据库是否有此限制,但我认为只是添加了行,没有对现有行进行修改。
DF就是RDD+Schema+很多其他的功能。从基本的 spark 设计来看,RDD 是不可变的。因此,您不能 在 DF 实现后更新它。 在您的情况下,您可以像下面这样混合流媒体 + SQL:
- 在您的数据库中,将数据写入队列以及写入表
- 使用 spark 队列流从队列中消费并创建 Dstreams(RDD 每 x 秒)
- 对于每个传入的RDD,加入现有的DF并创建一个新的DF