我有以下s3目录结构。
Data/
Year=2015/
Month=01/
Day=01/
files
Day=02/
files
Month=02/
Day=01/
files
Day=02/
files
.
.
.
Year=2014/
Month=01/
Day=01/
files
Day=02/
files
Month=02/
Day=01/
files
Day=02/
files
所以我正在创建hive外部表,如下所示
CREATE external TABLE trips
(
trip_id STRING,probe_id STRING,provider_id STRING,
is_moving TINYINT,is_completed BOOLEAN,start_time STRING,
start_lat DOUBLE,start_lon DOUBLE,start_lat_adj DOUBLE)
PARTITIONED BY (year INT,month INT,day INT)
STORED AS TEXTFILE
LOCATION 's3n://accesskey:secretkey@bucket/data/';
当我在此表上运行查询时,没有任何异常返回数据。如果我只将相同的文件放在一个目录中而没有分区,那么它运行正常。我也尝试过设置
set mapred.input.dir.recursive=true;
set hive.mapred.supports.subdirectories=true;
知道我哪里错了吗?
答案 0 :(得分:1)
您需要运行ALTER TABLE trips RECOVER PARTITIONS
命令。此命令将为S3中存在的表分区创建元数据。请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RecoverPartitions(MSCKREPAIRTABLE)