【问题标题】:Hive : Save query result in HDFS and load into a new tableHive:将查询结果保存在 HDFS 中并加载到新表中
【发布时间】:2016-08-18 06:53:56
【问题描述】:

我有一个有 3 个分区的 hive 表 (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 /user/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 文件中的这些数据加载到我的新表中吗?我也想保留分区..

【问题讨论】:

    标签: hadoop hive hiveql tez


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多