【发布时间】:2020-03-10 04:44:42
【问题描述】:
我有一个 Impala 表,它由另一个团队使用的镶木地板文件支持。 我每天运行一个批处理 Spark 作业,覆盖现有 parquet 文件(创建新数据集,现有文件将被删除并创建新文件)
我们的 Spark 代码如下所示
dataset.write.format("parquet").mode("overwrite").save(path)
在此更新期间(覆盖 parquet 数据文件,然后覆盖 REFRESH Impala 表),如果有人访问该表,那么他们最终会收到错误消息,指出基础数据文件不存在。
对于这个问题是否有任何可用的解决方案或解决方法?因为我不希望其他团队在访问表时在任何时间点看到错误。
也许我可以将新数据文件写入不同的位置,然后让 Impala 表指向该位置?
【问题讨论】:
-
你能解释一下“覆盖镶木地板数据文件”吗?您是先删除 parquet 文件,然后使用 Spark 在同一目录中写入新的 Parquet 数据文件吗?
-
@Gomz 谢谢,编辑了我的问题并添加了更多信息
-
"..他们最终会出现错误.." -- 您能否添加运行查询时遇到的确切错误?
标签: apache-spark parquet impala