hive语法学习
--显示表的所有字段
desc tablename;
---显示表的创建脚本
show create table tablename;
---格式化当前时间
from_unixtime(unix_timestamp(),'yyyy-MM-dd');
---当前时间后一天
date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
---当前时间前一天
date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
--删除分区
ALTER TABLE tablename DROP IF EXISTS PARTITION (dt='MHA');
---修改分区2021-11-07 为 2021-11-09
ALTER TABLE tablename PARTITION (dt='2021-11-07') RENAME TO PARTITION (dt='2021-11-09');
--字段column_1,column_2将添加在原表的最后面
alter table table_name add columns (column_1 string,column_2 int) ;
--修改字段
alter table table_name change column__1 a1 string;
--修改字段类型
Alter table 表名 change column 原字段名称 现字段名称 数据类型
alter table tablename partition(dt='2001-10-23') rename to partition(dt='new_dt')
--移动位置
alter table table_name change c_time c_time string after column_1 ; -- 移动到指定位置,column_1字段的后面
--原有Hive表test_change中有a,b,c,d,e这几个字段
-- 将从test_change中删除“d”列:
ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string,e string);
---将d和e两列一起删除:
ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string);
---修改columns的字段类型为bigint类型
Alter table tablename
change column oldcolumn newcolumn bigint;
1.Hive 表修改字段类型
Alter table 表名 change column 原字段名称 现字段名称 数据类型
2.新增字段表
alter table 表名 add columns(字段名 数据类型)
3.时间类型的字段设置为date时显示不出来的问题
--hive中不能修改数据,只能先删除,在插入,直接插入覆盖
insert overwrite table tablename partition(dt ='2021-12-15' )
select 'aaa' as columns1, 'bbb' as columns2;
insert into table tablename
values('aaa','bbb',1,'ccc'),
('ddd','bbb',2,'ccc'),
('eee','bbb',3,'ccc');
--批量插入分区表
insert overwrite table tablename partition (dt='2001-10-10')
select 'aaa' as column1, 'bbb' as column2, 'ccc' as column3
union all
select 'ddd' as column1, 'eee' as column2, 'fff' as column3;
---上上个月最后一天的
dt=last_day (add_months('${hivevar:v_today}',-2))
---上个月最后一天的
dt=last_day (add_months('${hivevar:v_today}',-1))
---获取上个月第一天
select add_months('{hivevar:v_month}'
---拼接
add_months(CONCAT(date_format(dt,'yyyy-MM'),'-01')
---向指定分区中追加数据
insert overwrite table tablename partition(dt = '2022-06-15' )
select column from tablename ;
---查询最大长度
select length(prd_name) as c from tablename where length(prd_name) >130
insert overwrite table tablename partition(dt = '2022-07-31' )
select * from tablename ;
---分区表添加字段
alter table tablename add columns(
column bigint
) cascade;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App