apache-spark - Spark Structured Streaming中从中间读取现有多级分区文件数据的问题
问题描述
我正在使用现有的多级分区镶木地板文件作为源来处理结构化火花流。我在使用它时遇到以下问题。
启动 spark 流作业以从特定分区读取数据,而不是从头开始。
假设如果我们观察到分区 year=2018/month=10/hour=10 存在数据质量问题。现在假设我已经通过替换正确的文件更正了这些数据。
现在的问题是如何从今天开始而不是从头开始重新处理数据?因为在结构化流中可以说我使用文件流作为源,它将加载我想忽略的几个文件的所有文件。在这里,我还需要删除我的检查点目录,因为它到目前为止还存在偏移。
解决方案
假设如果我们观察到分区 year=2018/month=10/hour=10 存在数据质量问题。那么如何重新处理从今天开始的数据,而不是从头开始呢?
我认为在 Spark Structured Streaming 中这是不可能的(希望我弄错了)。
由于我们谈论的是流式查询,因此您必须倒带“流”。实现它的唯一方法(我能想到)是重新上传数据(不知道如何做)或简单地处理会“删除”分区的先前版本的数据,year=2018/month=10/hour=10
然后上传新的更正版本。
问题是如何通知 parquet 数据源应该从结果中“驱逐”已经处理的任何内容(可能已经发送到外部源进行进一步处理)。
推荐阅读
- ruby-on-rails - 语法错误,意外的keyword_ensure,在我的应用程序中期待keyword_end
- android - 在 RunTime 上创建 edittext 时,Edittext 隐藏在键盘下
- javascript - NavLink 中的 ActiveClassName 需要重新加载页面才能显示
- c# - ASP.NET 核心在单例服务上调用异步初始化
- python - Win32com Outlook 组联系人
- visual-studio - 如何重新运行单元测试 X 次?
- c# - 为解决方案中的每个 csproj 生成版本并从代码中访问它
- highcharts - Highcharts 自定义图案填充显示不同的笔画宽度
- angular - 使用 ApplicationInsights-js 开玩笑地测试 Angular 应用程序时出现“ReferenceError:未定义定义”
- asp.net - ASP 用户控件:无法从循环内传递参数