使用配置单元创建分区外部 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 查询来查看数据。
已解决!
我在 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 查询来查看数据。
已解决!