使用配置单元创建分区外部表:没有可用数据

rom*_*rom 6 hive external hdfs partition

我在HDFS上有以下文件: 在此输入图像描述

我在Hive中创建外部表的结构:

CREATE EXTERNAL TABLE google_analytics(
  `session` INT)
PARTITIONED BY (date_string string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/flumania/google_analytics';

ALTER TABLE google_analytics ADD PARTITION (date_string = '2016-09-06') LOCATION '/flumania/google_analytics';
Run Code Online (Sandbox Code Playgroud)

之后,表结构在Hive中创建,但我看不到任何数据: 在此输入图像描述

由于它是一个外部表,数据插入应该自动完成,对吧?

rom*_*rom 1

我认为问题出在 alter table 命令上。下面的代码解决了我的问题:

CREATE EXTERNAL TABLE google_analytics(
  `session` INT)
PARTITIONED BY (date_string string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/flumania/google_analytics/';

ALTER TABLE google_analytics ADD PARTITION (date_string = '2016-09-06');
Run Code Online (Sandbox Code Playgroud)

经过这两个步骤后,如果您有一个 date_string=2016-09-06 子文件夹,其中包含与表结构对应的 csv 文件,则数据将自动加载,并且您已经可以使用选择查询来查看数据。

解决了!