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

时间:2016-09-02 16:11:00

标签: hive hdfs external partition

我在HDFS上有以下文件: enter image description here

我在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';

之后,表结构在Hive中创建,但我看不到任何数据: enter image description here

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

2 个答案:

答案 0 :(得分:1)

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

int,string

此处您的文件内容如下

string,int

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

86,"二零一六年八月二十日"
78," 2016年8月21日"

它应该工作。
此外,建议不要将关键字用作列名(日期);

答案 1 :(得分: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');

在这两个步骤之后,如果你有一个date_string = 2016-09-06子文件夹,其中csv文件对应于表格的结构,数据将自动加载,你已经可以使用select查询以查看数据。

解决!