zoukankan      html  css  js  c++  java
  • Hive 复制分区表和数据

      1. 非分区表: 

        复制表结构: create table new_table as select * from exists_table where 1=0;

        复制表结构和数据: create table new_table as select * from exists_table;

      2. 分区表:

        

    -- 创建一个分区表
    drop table if exists kimbo_test;
    create table kimbo_test
    (
    order_id int,
    system_flag string
    )
    PARTITIONED BY(dt string )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '01' LINES TERMINATED BY '
    '
    STORED AS TEXTFILE
    ;
    
    -- 插入数据
    insert overwrite table kimbo_test partition(dt='20170601')
    values (186000983,'A'),(286000983,'B') ;
    
    insert overwrite table kimbo_test partition(dt='20170602')
    values (386000983,'F'),(486000983,'W') ;
    
    
    create table test_par like kimbo_test;
    
    -- 用 as select 复制一个新表
    create table test_par2 as select * from kimbo_test where dt='20170601' limit 0;
    -- 用 like 复制一个新表
    create table test_par3 like kimbo_test;
    
    -- 注意差异: as select 复制的是一个非分区表, like 复制的是一个分区表。
    View Code

      表结构截图:

        

      3. 将原表的数据复制到 新表(test_par3)

        1. 创建新表: create table test_par3 like kimbo_test;

        2. 将HDFS的数据文件复制一份到新表目录,hive cmd模式下: dfs -cp -f /user/hive/warehouse/kimbo_test/* /user/hive/warehouse/test_par3/

        3. 修复分区元数据信息,hive cmd模式下: MSCK REPAIR TABLE test_par3;

      结果查询:

        

  • 相关阅读:
    winform 中xml简单的创建和读取
    睡眠和唤醒 进程管理
    [山东省选2011]mindist
    关于zkw流的一些感触
    [noip2011模拟赛]区间问题
    [某ACM比赛]bruteforce
    01、Android进阶Handler原理解析
    02、Java模式UML时序图
    04、Java模式 单例模式
    14、Flutter混合开发
  • 原文地址:https://www.cnblogs.com/kimbo/p/7102571.html
Copyright © 2011-2022 走看看