spark structured streaming声称在文件接收器上只保证一次。在我的应用程序中,我在append模式下通过结构化流处理数据,并将输出写入hdfs目录。hdfs路径:output/job1
假设我正在处理第n批。现在,如果系统发生故障,结构化流式处理作业突然失败,那么在输出目录中会有一些文件被写入,\u spark\u metadata目录中不会存在write commit,因此在我的输出目录中会有一些垃圾文件,当我尝试在任何下游spark作业中使用它们时,这些文件不会被读取。我已经通过将数据加载到pyspark并运行count query验证了这一点。
我还创建了一个hive外部表,指向output/job1,现在当我运行“msck repair table”用新文件刷新分区时,hive还发现垃圾文件只中断一次。
问题1)是否正确理解了这一“一次到位”的保证仅限于spark生态系统而非外部工具?
q2)有没有什么方法可以让hive使用spark读取逻辑来忽略垃圾文件?
暂无答案!
目前还没有任何答案,快来回答吧!