如何每5分钟刷新流应用程序中的元数据Dataframe?

edqdpe6u  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(299)

我使用的是spark sql 2.4.x版本,datastax spark cassandra connector for cassandra-3.x版本。还有Kafka。
我有一个来自kafka主题的一些财务数据的场景,比如financedf,我需要重新Map从cassandra表加载的metadatadf=//中的一些字段,以便查找。但是这个cassandra表(metadatadf)可以每小时更新一次。
在spark sql structured流媒体应用程序中,我应该如何每一小时从cassandra表中获取最新数据?
我不想为我从主题(即financedf)收到的每条记录加载此数据metadatadf。
该如何做/处理?有什么需要帮忙的吗。。

inn6fuwd

inn6fuwd1#

你有更多的选择来做类似的事情,基本上当你在google上搜索时,试着用静态数据进行spark丰富。
主要的问题是数据刷新。它取决于你的需要,如果你可以牺牲一些精度,分别如果你需要重新Map后直接改变Cassandra与否。一些可能的解决方案:
介绍一些Kafka中的特殊事件,这些事件将由外部系统创建,并将通知您您的Cassandra已更改(这是完全准确的,并立即更新)
引入常量输入数据流,或者在结构化流中可能有类似的机制。基本上,它将创建单独的输出操作,该操作将在每个流间隔读取cassandra并在不同的情况下更新缓存(当然,更改后不会立即更新缓存,而是在最近的流间隔处更新缓存)。
我也看到了带有窗口功能的解决方案,但它只是在一段时间后才更新。
当然,还有其他的可能性,一切都取决于你的喜好。

相关问题