
HIVE
空城gang
大起大落谁都有,拍拍灰尘继续走!
人生,一半清醒,一半释然。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
grouping__id grouping sets在hive和spark中执行的区别
一、hive中的grouping__id的数字规则(取反有则为1无则为0)如select a,b,c,grouping__id from test group by a,b,cgrouping sets ((ab),(ac),(abc))规则:根据group by 字段 ,从低到高,group sets中出现的字段是1没出现是0如 (a,b)对应 011 (a,c)对应 101二、spark中的grouping__id()的数字规则(有则为0无则为1)如select a,b,c,gr..原创 2021-04-18 21:41:24 · 2423 阅读 · 1 评论 -
HIve中表的复制、增加列、修改列名、修改表名、修改注释等
一、查看表路径desc formatted 表名eg:desc formatted 表A;二、hive复制表结构CREATE TABLE new_table LIKE old_table;eg:CREATE external TABLE 表ALIKE 表B 'hdfs://../表A';三、修改表,插入列alter table tb1 add columns(列名string COMMENT '注释') cascade;四、修改表的汉字名称例如将 社交粉丝订单修改...原创 2021-04-18 21:34:52 · 1930 阅读 · 0 评论 -
HIVE中对表的基本操作(包括增加、删除、修改)
一、HIVE语句1.hive复制表结构CREATE TABLE new_table LIKE old_table;CREATE TABLE adm_d05_content_log_di_olap_test LIKE adm_d05_content_log_di;CREATE external TABLE adm.adm_d05_content_log_di_olap_test LIKE adm.adm_d05_content_log_di location 'hdfs://ns8/user/dd_e原创 2020-12-12 21:08:20 · 1874 阅读 · 0 评论 -
hive mapjoin
select t1.a,t1.b from A join B on ( A.a=B.a and A.lD=20201190)该语句中B表有30亿行记录,A表只有100行记录,而且B表中数据倾斜特别严重,有一个key上有10亿行记录,在运行过程中特别的慢。MAPJION会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,而普通的 join则是类似于mapreduce模型中的file join,需要先分组,然后再reduce端进行连接,使用的时候需要结合着场景;由于map..原创 2020-08-11 23:10:20 · 268 阅读 · 1 评论 -
数据库SQL中求平均函数avg对于值为NULL和值为0的计算区别
a b 3 3 2 2 0 NULL 4 4 具体如表所示对a求平均:avg(a)=(3+2+0+4)/4=9/4 对b求平均:avg(b)=(3+2+4)/3=9/3结论:avg求平均时自动去除NULL原创 2020-08-08 21:20:24 · 4477 阅读 · 0 评论 -
Hive中4个By Sort By 、Order By、Distrbute By、 Cluster By区别
1)SortBy:分区内有序;2)Order By:全局排序,只有一个Reducer;3)Distrbute By:类似MR中Partition,进行分区,结合sort by使用。4)Cluster By:当Distribute by和Sorts by字段相同时,可以使用Cluster by方式。Cluster by除了具有Distribute by的功能外还兼具Sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。...原创 2020-08-08 21:14:42 · 1467 阅读 · 0 评论 -
Hive中内部表和外部表区别
1)内部表:当我们删除一个内部表时,Hive也会删除这个表和数据。2)外部表:删除该表并不会删除掉原始数据,删除的是表的元数据。原创 2020-08-08 21:11:17 · 336 阅读 · 0 评论 -
Hive和传统数据库的区别
1)数据存储位置Hive存储在HDFS。数据库将数据保存在块设备或者本地文件系统中。2)数据更新Hive中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的, 3)执行延迟Hive执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。4)数据规模Hive支持很大规模的数据计算;数据库可以支持的数据规模较小。...原创 2020-08-08 21:09:06 · 668 阅读 · 0 评论 -
Hive中行,列互换
表AID num 1 2 1 3 1 4 2 6 2 8 ...原创 2020-04-14 15:28:36 · 333 阅读 · 0 评论 -
HIVE到ES的映射,以及ES的基本操作
ES的基本操作:(新建,增,删,改,查)1.创建索引:(以饱和度算法模型为例子:这个是我做的项目名字)PUT /clue_strategies_clue_saturation/{ "mappings": { "clue_saturation": { "properties": { "uid": { "type":...原创 2019-09-17 16:25:37 · 6122 阅读 · 0 评论 -
HIVE窗口函数按日期累加 (取消费满50的日期,满100的日期)
取每个顾客消费满50、满100时的日期表如下图:name costdate num jack 2015-01-01 10 tony 2015-01-02 15 jack 2015-02-03 23 tony 2015-01-04 29 jack 2015-01-05 46 jack 201...原创 2019-09-16 15:30:12 · 3653 阅读 · 0 评论 -
HIVE 中将下一条记录的创建时间作为上一条记录的结束时间
HIVE 中将下一条记录的创建时间作为上一条记录的结束时间selectteacher_uid,stu_pid,created_at,coalesce(lead(log.created_at,1) over(partition by teacher_uid,stu_pid order by log.created_at),'9999-12-31 99:99:99') as e...原创 2019-09-03 18:59:52 · 1160 阅读 · 0 评论 -
HIVE中多行变一行
例子:teacher_uid和stu_pid相同 ,需要将created_at合并成一行。使用concat_ws(' ',collect_set())HIVE语句如下:select teacher_uid,stu_pid,concat_ws('----',collect_set(created_at)) as created_atfrom aa group by teache...原创 2019-09-02 19:54:20 · 4032 阅读 · 0 评论 -
HIVE中笛卡尔积 (用A JOIN B on true 可以实现)
with aa as(select 1 as num , 2 as nunion allselect 3 as num , 4 as n),bb as(select 4 as num , 2 as nunion allselect 5 as num , 4 as n)select *from aajoin bbon true原创 2019-08-29 16:41:46 · 3647 阅读 · 0 评论 -
SQL NVL()函数
NVL函数是一个空值转换函数1.NVL(表达式1,表达式2)如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。SELECT NVL(2,1) as numSELECT NVL(NULL,1) as numSELECT NVL(NULL,NULL) as num...原创 2019-08-29 15:27:57 · 1442 阅读 · 0 评论 -
HIVE与MySQL的区别
HIVE:中字段类型为string MySQL:对应字段类型为varcharHIVE:中实现笛卡尔积为 FULLjoin MySQL:中实现笛卡尔积为CROSSjoinHIVE:中注释为 -- MySQL: 中注释为空格 -- ...原创 2019-07-29 16:50:37 · 839 阅读 · 0 评论 -
Hive统计每个月在职的人员
表里只有员工号ID,注册日期,离职日期。思路1:第一:新建一个日期表去笛卡尔积连接员工信息表第二:分情况讨论: 当离职日期为空时,注册日期小于等于当前日期为1, 当离职日期不为空时,注册日期小于等于当前日期 并且离职日期大于等于当前日期为1以下是在HIVE中写的,如果是MySQL需要将full join改为cross joinselect...原创 2019-07-29 17:03:38 · 2319 阅读 · 0 评论 -
HIVE 总体标准差stddev()
-- 1.聚合函数select col, stddev(num) as stddev_colfrom ( select 'A' as col, '1' as num union all select 'A' as col, '2' as num union all select 'A' as col, '3' as num union all...原创 2019-07-29 17:26:15 · 3005 阅读 · 0 评论 -
HIVE中窗口函数的使用
drop table if exists tmp_dw_dahai.fact_clue_state_log;create table if not exists tmp_dw_dahai.fact_clue_state_log stored as parquet asselect a.sale_id,a.clue_id,a.clue_status,a.start_time,fro...原创 2019-07-30 10:38:35 · 340 阅读 · 0 评论 -
HIVE窗口函数
我自己建的一个临时表:select 'A' as name ,1 as num,2 as ddunion allselect 'A' as name ,2 as num,3 as ddunion allselect 'A' as name ,3 as num,7 as ddunion allselect 'B' as name ,4 as num,1 as ddunion ...原创 2019-07-30 16:19:07 · 173 阅读 · 0 评论 -
数据仓库 缓慢变化维
缓慢变化维处理方法:什么是缓慢变化维:缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题。比如学生的班级,年级等表中的处理方法:1.重写覆盖:初始的维度表学号 姓名 年级 20190101 王五 一...原创 2019-08-19 10:36:43 · 736 阅读 · 0 评论 -
SQL求出每门课程成绩都大于80分的学生姓名
表Aname subject score zhangsan math 80 zhangsan chinese 90 wangwu math 70 wangwu chinese 85 aa math 90 aa chinese 95 ...原创 2019-08-13 11:26:52 · 3789 阅读 · 0 评论 -
SQL查询用户的最长连续登陆天数
题目重点:连续设表名字:user_login第一步:使用ROW_NUMBER()窗口函数按UID分组,按date1降序排-- 第一段首先根据用户分组,登陆时间排序,结果按照登陆时间升序排列 SELECT UID, date1, row_number() OVER(PARTITION BY UID order by date1) as so...原创 2019-08-26 21:09:36 · 28617 阅读 · 16 评论 -
hive mapjoin 与 数据倾斜
selectt2.a,t2.bfromtable t1 join table2 t2on ( t1.a=t2.a and t2.dt=20180802)该语句中B表有30亿行记录,t1表只有100行记录,而且t2表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存不够而报错。MAPJION会把小表全部读入内存中,...原创 2019-08-28 10:58:13 · 430 阅读 · 0 评论 -
SQL:函数:COALESCE()
主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)返回第一个不为NULL的值eg: SELECT COALESCE(NULL, 2, 3)SELECT COALESCE(NULL, NULL, 3)...原创 2019-08-29 10:48:07 · 3420 阅读 · 1 评论 -
hive删除表分区
1.删除分区:alter table features.fact_sale_clue_status_abilitydrop partition (dt<'20180725');原创 2019-07-29 16:44:59 · 790 阅读 · 0 评论