java 增删改查hive_Hive 表增删改查CRUD操作

建表操作

建立外部表

CREATE EXTERNAL TABLE dg_devicetoken_day ( id bigint, user_id bigint, device_token STRING, client_id int, badge int, ifa string, imei string, modifytime STRING ) PARTITIONED BY(p_day BIGINT) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe' STORED AS RCFILE LOCATION '/user/hive/warehouse/dg/bigtables/dg_devicetoken_day';

建立临时表

临时表采用逗号 ‘,’ 分割

CREATE TABLE `dh_tmp_pt_data`( `id` string, `uid` string, `mobile` string, `client` string) row format delimited fields terminated by ',';

插入数据

查询表数据再插入

query_c="

INSERT OVERWRITE TABLE dg_devicetoken_day partition (p_day=${CUR_PARTITION}) \ select id,user_id,device_token,client_id,badge,ifa,imei,modifytime \ from dg_devicetoken \ where client_id=3 and modifytime<>''" # 插入数据 hive -e "$query_c"

插入load本地数据文件

load data local inpath '/opt/DATA/goldmine/src/an.log' into table dh_cook_tag

删除

Hive 中,仅仅删除表是不够的,如果这个表是外部表,那么还需要删除HDFS中的文件

删除分区数据

query_d="ALTER TABLE dg_devicetoken_day DROP IF EXISTS PARTITION(p_day=${BEFORE_PARTITION})"

# 删除 Hive 表数据

hive -e "$query_d"

# 删除hdfs数据

hadoop fs -rm -r /user/hive/warehouse/dg/bigtables/dg_devicetoken_day/p_day=${BEFORE_PARTITION}

# 查看数据文件是否还存在

hadoop fs -ls -h /user/hive/warehouse/dg/bigtables/dg_devicetoken_day

删除整表数据

# 删除Hive表

DROP TABLE IF EXISTS dg_devicetoken_day # 删除HDFS数据文件 hadoop fs -rm -r /user/hive/warehouse/dg/bigtables/dg_devicetoken_day

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值