Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何每5分钟刷新流媒体应用中的元数据数据帧?_Apache Spark_Cassandra_Apache Spark Sql_Spark Structured Streaming - Fatal编程技术网

Apache spark 如何每5分钟刷新流媒体应用中的元数据数据帧?

Apache spark 如何每5分钟刷新流媒体应用中的元数据数据帧?,apache-spark,cassandra,apache-spark-sql,spark-structured-streaming,Apache Spark,Cassandra,Apache Spark Sql,Spark Structured Streaming,我正在使用spark sql 2.4.x版本,datastax spark cassandra连接器用于cassandra-3.x版本。还有卡夫卡 我有一个来自卡夫卡主题的一些财务数据的场景,比如financeDf 我需要重新映射从cassandra表加载的metaDataDf=//中的一些字段,以便查找。 但是这个cassandra表(metaDataDf)可以每小时更新一次 在spark sql Structured流媒体应用程序中,我应该如何每一小时从cassandra表中获取最新数据 我

我正在使用spark sql 2.4.x版本,datastax spark cassandra连接器用于cassandra-3.x版本。还有卡夫卡

我有一个来自卡夫卡主题的一些财务数据的场景,比如financeDf 我需要重新映射从cassandra表加载的metaDataDf=//中的一些字段,以便查找。 但是这个cassandra表(metaDataDf)可以每小时更新一次

在spark sql Structured流媒体应用程序中,我应该如何每一小时从cassandra表中获取最新数据

我不想为我从主题(即financeDf)收到的每条记录加载此数据metaDataDf


这应该如何做/处理?请提供任何帮助。

你有更多的选择如何做类似的事情,基本上当你在谷歌上搜索时,试着集中精力 .已经有一些关于堆栈溢出的答案

您面临的主要问题是数据刷新。这取决于您的需要,以及您是否可以牺牲一些精度,分别取决于您是否需要在更改Cassandra后直接重新映射。一些可能的解决办法:

  • 在卡夫卡中介绍一些特殊事件,这些事件将由外部系统创建,并将通知您您的卡桑德拉已被更改(这是完全准确的,并立即更新)
  • 引入恒定输入数据流,或者在结构化流中可能有类似的机制。基本上,它将创建单独的输出操作,该操作将在每个流间隔读取Cassandra,并在不同的情况下更新缓存(当然,更改后不会立即更新,而是在最近的流间隔处更新)
  • 我也看到了带有窗口功能的解决方案,但它只是在一段时间后才更新

  • 当然,还有其他可能性,一切都取决于您的偏好。

    您是否考虑过
    数据集。加入流式数据集(kafka)和批处理数据集(cassandra)?选项1取决于外部系统,或者我们可以将其称为cassandra的编写器。我不确定它是否在你们手中,但基本上你们可以在卡夫卡中引入新的主题,比如XYZSTATICDATA更新。正在更新此Cassandra的外部系统可以将事件发布到Kafka,只要它更改Cassandra,您就会立即读取它并更新缓存。当然,我不确定《卡桑德拉》的作者是否在你们手中,你们是否可以在卡夫卡中加入触发事件。