hive常用命令记录

1. Table相关操作

1.1 创建表

CREATE TABLE app.table_name
(
	id BIGINT COMMENT 'id',
	column_A string COMMENT '列A',
	column_B string COMMENT '列B',
	column_C string COMMENT '列C'
)
COMMENT '表描述';

1.2 增加列

ALTER TABLE app.table_name 
ADD COLUMNS 
(
	column_D string COMMENT '列D'
);

1.3 删除列

不支持delete column操作,可以使用replace columns实现字段删除操作;
删除column_C

ALTER TABLE dev.edi_partner_service_usage replace columns  (
	id BIGINT COMMENT 'id',
	column_A string COMMENT '列A',
	column_B string COMMENT '列B',
	column_D string COMMENT '列D'
);

2. 日期相关操作

2.1 日期串截取

取yyyy-MM-dd HH:mm:ss格式日期串的yyyy-MM-dd部分,使用字符串SUBSTR函数;

SUBSTR(create_time, 1, 7)

2.2 转换时间戳为 yyyy-MM-dd格式

from_unixtime(cast(logging_request_time/1000 as bigint), 'yyyy-MM-dd')

3. 使用case when实现行列互转

假设现在有如下数据(表 score )

姓名科目成绩
晓明语文100
晓明数学100
晓明英语100
小红语文100
小红数学100
小红英语100

我们希望以如下方式展示

姓名语文数学英语
晓明100100100
小红100100100

可以使用case when来实现

select 	姓名,
		case when 科目='语文' THEN score ELSE 0 END 语文,
     	case when 科目='数学' THEN score ELSE 0 END 数学,
     	case when 科目='英语' THEN score ELSE 0 END 英语
from score
group by 姓名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值