Hive常用命令

一、HQL

1.修改字段类型

alter table 表名 change column 字段名 字段名 目标的字段类型

#例子:将表test中的字段a的类型转换为bigint
alter table test change column a a bigint

2.删除库及库中所有表(数据也会删除)

DROP DATABASE IF EXISTS 数据库名 CASCADE;

# 例子:删除student库
DROP DATABASE IF EXISTS student CASCADE;

3.创建数据库

# 语法
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]
  [LOCATION hdfs_path]
  [WITH DBPROPERTIES (property_name=property_value, ...)];

database_name:数据库名
database_comment:数据库的描述
hdfs_path:在hdfs上的存储路径,不填则默认存储在'/usr/hive/warehouse/数据库名.db'

#例子
CREATE DATABASE IF NOT EXISTS student
COMMENT '学生数据库'
LOCATION '/usr/hive/warehouse/student.db'

4.创建表

create table if not exists 表名
(
    字段名 类型 [COMMENT],
    字段名 类型 [COMMENT]
    ...
)
PARTITIONED BY ( 
分区字段1 类型, 
分区字段2 类型
...
)
row format delimited fields terminated by 分隔符
location hdfs路径;


# 例子
create table if not exists att
(
`attserial` bigint comment '序列号',
`filename` string comment '文件名'
)
COMMENT '学生档案表'
PARTITIONED BY ( 
`year` string, 
`month` string, 
`day` string)
row format delimited fields terminated by '\t'
location '/user/hive/warehouse/student.db/att';

5.修改字段分隔符

alter table mytable set serdeproperties('field.delim'='\t');

 6.当前时间

from_unixtime(unix_timestamp())

二、hive cli命令

1.从mysql全量导入表数据到hive分区表

sqoop import \
--connect jdbc:mysql://10.xxx.xx.xx:4000/db_base_data?tinyInt1isBit=false \
--username xxxx \
--password xxxx \
--query "select *  from att where \$CONDITIONS" \
--fields-terminated-by '\t' \
--delete-target-dir \
--hive-import \
--m 1 \
--hive-partition-key record_date \
--hive-partition-value 2021-12-09 \
--hive-database shenzhen_shenba \
--hive-table tbl_base_line \
--target-dir /user/hive/warehouse/busgroupdb.db/att/year=2021/month=12/day=09\
--delete-target-dir \
--direct

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值