Spark结构化流-流数据与静态数据合并,每5分钟刷新一次

问题描述 投票:-2回答:1

对于Spark结构化的流作业,一个输入来自kafka主题,而第二个输入是一个文件(将通过python API每5分钟刷新一次)。我需要加入这2个输入并写入kafka主题。

我面临的问题是,当刷新第二个输入文件并且Spark Streaming作业正在读取文件的同时,我得到以下错误:

文件文件:/home/hduser/code/new/collect_ip1/part-00163-55e17a3c-f524-4dac-89a4-b9e12f1a79df-c000.csv不存在基础文件可能已更新。您可以通过重新创建所涉及的数据集/ DataFrame来显式使Spark中的缓存无效。

任何帮助将不胜感激。

apache-spark spark-structured-streaming spark-streaming-kafka
1个回答
0
投票

使用HBase作为静态存储。当然,这是更多的工作,但允许并发更新。

我在哪里工作,所有Spark Streaming都使用HBase进行数据查找。快得多。如果您有一个拥有1亿个客户的微型批次10k记录怎么办?我知道最初需要做很多工作。

请参见https://medium.com/@anchitsharma1994/hbase-lookup-in-spark-streaming-acafe28cb0dc

如果您有一个小的静态引用表,则可以使用静态联接,但是您也可以进行更新,从而导致问题。

© www.soinside.com 2019 - 2024. All rights reserved.