不兼容的Parquet模式,因为不同的Hive版本

zbq4xfa0  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(613)

我们有一个运行hive0.13.1的emr服务器(我知道它非常古老,但是这个集群有很多依赖性,因此我们无法消除它)不管怎样,我们使用一个不同的emr集群(它有一个最新版本的hive)在parquet中处理了10tb的tsv数据。这是一个临时的事情,以方便休数据处理。
现在我们回到旧的电子病历做增量处理的tsvParquet地板。我们使用aws红移光谱结合glue对这些数据进行查询。glue在数据所在的s3路径上爬行,从而为我们提供了一个可以使用的模式。
现在,旧的emr处理过的数据给了我们一个问题,那就是Parquet地板模式不兼容。
当我们试图读取由新 hive 和旧 hive 处理的数据组成的Parquet数据时,我们得到的错误是, [2018-08-13 09:40:36] error: S3 Query Exception (Fetch) [2018-08-13 09:40:36] code: 15001 [2018-08-13 09:40:36] context: Task failed due to an internal error. File '<Some s3 path >/parquet/<Some table name>/caldate=2018080900/8e71ebbe-b398-483c-bda0-81db6f848d42-000000 has an incompatible Parquet schema for column [2018-08-13 09:40:36] query: 11500732 [2018-08-13 09:40:36] location: dory_util.cpp:724 [2018-08-13 09:40:36] process: query1_703_11500732 [pid=5384] 我的预感是,这是因为不同的Hive版本或它可能是红移光谱的错误。
有人面临过同样的问题吗?

wh6knrhe

wh6knrhe1#

我认为这篇文章将帮助你解决这个问题。它讨论了模式由不同版本编写而由另一版本读取的问题。
https://slack.engineering/data-wrangling-at-slack-f2e0ff633b69

相关问题