4

我有以下 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

所以我正在创建蜂巢外部表如下

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/';

当我在这个表上运行查询时,没有任何数据返回,没有任何异常。如果我只将相同的文件放在一个目录中并且没有分区,那么它运行良好。我也试过 bey 设置

set mapred.input.dir.recursive=true;
set hive.mapred.supports.subdirectories=true;

知道我哪里错了吗?

4

1 回答 1

1

您需要运行ALTER TABLE trips RECOVER PARTITIONS命令。此命令将为 S3 中存在的表分区创建元数据。请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RecoverPartitions(MSCKREPAIRTABLE)

于 2017-12-08T19:27:04.213 回答