Hive和Parquet文件

uubf1zoe  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(501)

我有一组Parquet文件,我想添加到我的hdinsight配置单元。
我已经创建了一个Parquet地板table(这里当然简化了):

create external table parq_test ( 
  A int,
  B int,
  C int
  )
STORED AS PARQUET
LOCATION '/data/parq_test'

我可以将数据插入此文件:

insert into parq_test values ( 1,2,3 );

此文件夹中的配置单元生成的文件具有以下Parquet架构:

message hive_schema {
  optional int32 a;
  optional int32 b;
  optional int32 c;
}

如果我在具有相同形状架构的其他文件中复制:

message hive_schema {
  optional int32 a;
  optional int32 b;
  optional int32 c;
}

我得到以下错误:

org.apache.hive.service.cli.HiveSQLException: java.io.IOException: java.lang.IllegalStateException: Group type [message schema {
  optional int32 a;
  optional int32 b;
  optional int32 c;
}
] does not contain requested field: optional int32 a

我被这个错误搞糊涂了,因为它显然包含请求的字段?不能直接将Parquet文件添加到外部表目录吗?
编辑:编辑。

6jjcrrmo

6jjcrrmo1#

我也遇到了类似的问题。进一步研究发现,“pyarrow”是python上parquet的默认引擎。在使用这个引擎在python中创建parquet文件之后,我能够在hive中查询它们

相关问题