Hive表路径修改和分区表数据加载命令

1、对于同一张表,如果不是分区,那要变更数据来源,就只有改变其hdfs存储路径:

修改tmp_fjs_ftp表的location,两种方式:
方式一:通过修改表DDL
alter table tmp_fjs_ftp set location 'hdfs://nameservice-ha/tmp/ast/ast ';
方式二:直接修改hive的meta info:
update ` tmp_fjs_ftp ` set `DB_LOCATION_URI` = replace(DB_LOCATION_URI,"oldpath","newpath");

方式二提示语法错误,待研究;


2、如果是带分区的同一张表,要加载数据,命令如下:

1)分区表:

CREATE TABLE test(

    ……

)

PARTITIONED BY ( country STRING ); #分区键和字段不能重复


2)加载数据:


LOAD DATA LOCAL INPATH '/path/to/local/files' OVERWRITE  INTO TABLE test PARTITION (country='CHINA')


有LOCAL表示从本地文件系统加载(文件会被拷贝到HDFS中)


无LOCAL表示从HDFS中加载数据(注意:文件直接被移动!!!而不是拷贝!!! 并且。。文件名都不带改的。。)


OVERWRITE  表示是否覆盖表中数据(或指定分区的数据)(没有OVERWRITE  会直接APPEND,而不会滤重!)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值