- 该问题出现原因:
该问题出现在aws数据导入到我自己平台的hive仓库过程中出现的,AWS上该表的加工过程我也不清楚,只知道存储格式是parquet。然后通过show create table tb_a;得到了建表语句,然后我就用此建表语句在自己的仓库中建表,大致如下:
建表:
CREATE EXTERNAL TABLE `s_tb_a`(
aaa string,
bbb double,
ccc string,
eee string,
ddd string,
ffff string,
hhh double,
iiii string,
jjjj decimal(38,4)
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
stored as Parquet;
从ASW拷贝数据:
hadoop distcp s3n://xxxxxx/dbName/tb_a/* /user/hive/warehouse/stage.db/s_tb_a/
然后查询就报错了:Can not read value at 0 in block -1 in file
- 原因分析:
刚开始以为自己建的表跟aws格式不同所以无法加载,后来确实是没问题的;
也把decimal数据类型改成string或double过都不行。
后来找到这个:
Root Cause: