使用配置单元创建分区外部 table:无可用数据

Creation of a partitioned external table with hive: no data available

我在 HDFS 上有以下文件:

我在 Hive 中创建 外部 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') LOCATION '/flumania/google_analytics';

之后,在 Hive 中创建了 table 结构,但我看不到任何数据:

既然是外部的table,数据插入应该是自动完成的吧?

您的文件应按此顺序排列。

整数,字符串

这里你的文件内容顺序如下

字符串,整数

将您的文件更改为以下内容。

86,"2016-08-20"
78,"2016-08-21"

应该可以。
另外不建议使用关键字作为列名(date);

我认为问题出在 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');

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

已解决!