当前位置: 首页 > news >正文

常用hivesql记录

前言

hivesql中很多常用的功能,过段时间没有使用就容易忘记,需要去网上搜索,这里总结一下,省的以后还去去搜,供自己以后参考。

查看分区的行

show rowcount extended table_name;

创建二级分区表

set hive.default.fileformat=Orc;
use db_name;
CREATE TABLE IF NOT EXISTS tb_name(col_name1 STRING comment '',col_name2 STRING comment '',col_name3 STRING comment '',col_name4 STRING comment '',col_name5 STRING comment ''
)COMMENT 'for demo'
PARTITION BY LIST(col_name) 
SUBPARTITION BY LIST (col_name2) (SUBPARTITION default) ( PARTITION default)
STORED AS ORCFILE COMPRESS;

alter表(增加列)

use db_name;
ALTER TABLE tb_name ADD COLUMNS (cols_name6 string COMMENT ''
);

alter表(drop列)

# 不写即删除, 删除col_name4,col_name5,col_name6,保留col_name1,col_name2,col_name3
use db_name;
ALTER TABLE tb_name ADD COLUMNS (col_name1 STRING comment '',col_name2 STRING comment '',col_name3 STRING comment ''
);

删除表

use db_name;
drop table tb_name;

insert分区数据

# 将p_20221231分区的数据,写到p_20230101分区,注意分区名和值的统一,否则会写入失败
use db_name;
alter table tb_name drop partition (p_20230101);
alter table tb_name add partition p_20230101 values in(20230101);
insert table tb_name partition(col_name1=20230101)
select'20230101' as col_name1,col_name2, col_name3, col_name4
from tb_name
partition ( p_20221231)p

case-when操作

 selectcol_name1,col_name2, col_name3, col_name4,case when col_name3 is null then CONCAT_WS('-', col_name1, col_name2)when col_name4 is null then CONCAT_WS('-', col_name1, col_name2, col_name3)else col_name1end as new_col_namefrom tb_name partition(p_20230101)t

LATERAL VIEW操作

col_name4的值为(字符串):‘{ “list_value”: [value1, value2]}’

# col_name4的值为:"[value1, value2]"
# 先将其col_name3转为json,然后获取list_value的值,接着使用regexp_replace替换掉("[]")等,变成字符串。再接着使用split分割成数组,并使用explode将其打平。selectcol_name1,col_name2, col_name3, col_name4,id_tmpfrom tb_name partition(p_20230101)tLATERAL VIEW explode(split(regexp_replace(get_json_object(col_name4, '$.list_value'), "\"|\"|\\[|\\]", ''), ',')) id_list as id_tmp

分组排序编号,获取topK操作

# 
SELECT *
from (SELECT col_name1,col_name2, row_number() over (partition by col_name2, col_name3 order by col_name4 desc) rank rankfrom tb_name
)
where rank < 500
http://www.lryc.cn/news/224106.html

相关文章:

  • C# OpenCvSharp 去除文字中的线条
  • 【树的存储结构,孩子链表】
  • 到蒙古包了,这边天气-9度 很冷
  • 淘宝天猫京东苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)
  • 案例:用户管理
  • AIGC:使用生成对抗网络GAN实现MINST手写数字图像生成
  • excel中超级表和普通表的相互转换
  • element中el-switch用法汇总(拓展:el-switch开关点击弹出确认框时,状态先改变,点击确认/取消失效,怎么解决?)
  • mysql之高阶语句
  • 视频编软件会声会影2024中文版功能介绍
  • IS-LM模型:从失衡到均衡的模拟
  • 【Linux】进程终止
  • 55.跳跃游戏
  • php实现钉钉机器人推送消息和图片内容(完整版)
  • A Survey on Neural Network Interpretability
  • 代码随想录 Day41 动态规划09 LeetCode T121 买卖股票的最佳时机 T122 买卖股票的最佳时机II
  • ubuntu18-recvfrom接收不到广播报文异常分析
  • 漏刻有时百度地图API实战开发(6)多个标注覆盖层级导致不能响应点击的问题
  • 使用Net2FTP轻松打造免费的Web文件管理器并公网远程访问
  • MySQL的表格去重,史上最简便的算法,一看就会
  • this是指向的哪个全局变量,改变this指向的方法有几种?
  • 电脑msvcp110.dll丢失怎么办,msvcp110.dll缺失的详细修复步骤
  • cookie 里面都包含什么属性?
  • LinuxMySql
  • 《微服务架构设计模式》之三:微服务架构中的进程通信
  • μC/OS-II---内核:任务调度
  • 小程序发成绩
  • tensorflow内存泄漏或模型只加载不运行
  • npm和yarn的一些命令
  • Linux开发工具之自动化构建工具-make/Makefile