1

我有一个配置单元表,它有 3 个部分分区 (dt、service_type、pv)

我想在另一个数据库中创建一个新表,其中包含来自该原始表的过滤数据。(按用于分区的列过滤)

所以我使用 SELECT 查询数据,并将结果保存在 HFDS

INSERT OVERWRITE DIRECTORY  '/user/atscale/filterd-ratlog' SELECT * FROM rat_log_normalized WHERE dt >= '2016-05-01' AND dt <='2016-05-31' AND service_type='xxxxx_jp' AND event_type='yy';

这是 HDFS 中的结果文件夹结构。它被分成 531 个文件:

hdfs dfs -ls /user/atscale/filterd-ratlog

找到 531 项 -rwxr-xr-x 3 atscale atscale 8838075079 2016-08-18 06:20 /user/atscale/filterd-ratlog/000000_0 -rwxr-xr-x 3 atscale atscale 8879084968 2016-08-18 06:15 /用户/atscale/filterd-ratlog/000001_0 -rwxr-xr-x 3 atscale atscale 8821619748 2016-08-18 06:20 /user/atscale/filterd-ratlog/000002_0 -rwxr-xr-x 3 atscale atscale 8724063719 2016-08 -18 06:20 /user/atscale/filterd-ratlog/000003_0 。. . -rwxr-xr-x 3 atscale atscale 6878819716 2016-08-18 06:42 /user/atscale/filterd-ratlog/000527_0 -rwxr-xr-x 3 atscale atscale 5461395906 2016-08-18 06:27 /user/atscale /filterd-ratlog/000528_0 -rwxr-xr-x 3 atscale atscale 6222887747 2016-08-18 06:26 /user/atscale/filterd-ratlog/000529_0 -rwxr-xr-x 3 atscale atscale 692289350 2016-08-18 06 :37 /user/atscale/filterd-ratlog/000530_0

现在,哇,我可以将 HDFS 文件中的这些数据加载到我的新表中吗?我也想保留分区..

4

1 回答 1

2

我猜你正在寻找一个外部表:

DROP TABLE IF EXISTS filterd-ratlog;
create external table filterd-ratlog(
col1 int,
col2 int,
col3 int,
dt string,
service_type string,
event_type string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
location '/user/atscale/filterd-ratlog';
于 2016-08-18T07:46:49.697 回答