我有一组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文件添加到外部表目录吗?
编辑:编辑。
1条答案
按热度按时间6jjcrrmo1#
我也遇到了类似的问题。进一步研究发现,“pyarrow”是python上parquet的默认引擎。在使用这个引擎在python中创建parquet文件之后,我能够在hive中查询它们