hive
文章平均质量分 51
xuehuagongzi000
这个作者很懒,什么都没留下…
展开
-
hive中substring_index()的使用
hive sql substring_index原创 2023-02-10 15:14:23 · 1839 阅读 · 0 评论 -
hive中的distribute by、sort by、cluster by
1.背景 hive中有一个store表,字段分别是"商店所属人标识"(merid),“商户余额(money)”,“商店名称(name)”。求每个法人下属的商店的余额按照降序排序。//merid,money,nameB 10 store_B_4A 12 store_A_1A 14 store_A_2B 15 store_B_1B 19 store_B_2B 30 store_B_32.distribute by、sort by hive中(distribute ...原创 2022-02-21 15:05:46 · 1374 阅读 · 0 评论 -
hive 连续登陆
1、数据id daystr amount1 2019-02-08 1241.551 2019-02-09 1052.991 2019-02-10 85.691 2019-02-12 769.851 2019-02-13 943.861 2019-02-14 538.421 2019-02-15 369.761 2019-02-16 369.761 2019-02-18 795.151 2019-02-19 715.651 2019-02-21 537.712 2019-02-0原创 2021-11-24 12:28:41 · 1332 阅读 · 0 评论 -
hive的 LAG,LEAD,FIRST_VALUE,LAST_VALUE函数
1、数据准备CREATE EXTERNAL TABLE lxw1234 (cookieid string,createtime string, --页面访问时间url STRING --被访问页面) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile location '/tmp/lxw11/'; hive> select * from lxw1234;OKcookie1 2015原创 2021-11-24 12:03:52 · 1638 阅读 · 0 评论 -
SQL—相邻间隔问题
<题目>给定一张用户浏览时间表user_pv_time,表中包含两个字段,分别是用户【user_id】和用户访问时间【user_time】<问题>求每个用户相邻两次浏览时间之差小于3min的次数<解题思路>思路一:既然是求每个用户XX,最后一定要按照用户id进行分组;又要求是相邻两次浏览时间,所以要对每个用户的浏览时间排序号,利用序号的差值为1即可判断是相邻;SELECT a.user_id, COUNT(*) AS pv_countFRO原创 2021-11-24 10:49:45 · 1017 阅读 · 0 评论 -
hive正则表达式regexp_extract
1、正则明细/做为转意,即通常在"/"后面的字符不按原来意义解释,如/b/匹配字符"b"^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa? 匹配前面元字符0次或1次,/ba*/将匹配b,ba(x) 匹配x保存x在名......原创 2021-11-23 19:06:01 · 1444 阅读 · 0 评论 -
hive的lateral view 与 explode函数的使用&transArray
主要介绍explode和posexplode函数的使用。类似于flatmap把一个数组打散lateral view 侧视图。原表的每一行和explode_lateral_view进行笛卡尔积关联,也可以多重使用1、数据介绍先看下我们的数据,主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo。2、单列Explode首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral vi原创 2021-11-23 17:23:54 · 5992 阅读 · 0 评论 -
Hive中使用sum over()实现累积求和和滑动求和
1、数据介绍咱们有三列数据,分别是员工的姓名、月份和销售额:2、累积求和select *, sum(cnt) over(partition by name order by month) as total_cntfrom default.salerinfo结果:3、滑动求和我们想要求每个月对应的最近三个月的业绩之和(包含本月在内),代码如下:sum(cnt) over(partition by name order by month range bet..原创 2021-11-23 16:17:56 · 8550 阅读 · 0 评论 -
hive实现组内排序rownumber,rank,dense
本篇主要来介绍一下hive中三个常用的排序函数row_number(),rank()和dense_rank()。1、数据row_number(),rank()和dense_rank()都是结合over来进行使用的,over的一般结构如下:over(partition by col1 order by col2 asc/desc)一般来说,需要指定以下三项:a、partition by col1,按哪列进行分组,如果不指定,则默认按全局进行排序,如果指定了一列,则首先对数据按照指原创 2021-11-23 16:02:46 · 2146 阅读 · 1 评论 -
hive数仓事实表建模
1、事实表事务型快照事实表,每天一个分区,每天递增周期型快照事实表,每天一个分区,每天全量累积型快照事实表,原创 2021-06-18 11:32:05 · 1444 阅读 · 0 评论 -
spark on hive & hive on spark的区别
Spark on Hive :数据源是:hiveSpark 获取hive中的数据,然后进行SparkSQL的操作(hive只是作为一个spark的数据源)。spark on hive : 是spark 通过spark-sql 使用hive 语句操作hive ,底层运行的还是 spark rdd.*(1)就是通过sparksql,加载hive的配置文件,获取到hive的元数据信息* (2)spark sql获取到hive的元数据信息之后就可以拿到hive的所有表的数据* (3)接下来就...原创 2020-05-12 11:10:09 · 3924 阅读 · 0 评论 -
hive计算每个月和每周的第一天的count(*)
1、计算每个月的第一天的count(*)select p_day as subDay,count(*) sumCount from t_app_sbd where p_day>=20200201 and substr(p_day,7,8)='01' group by p_day limit 102、计算每周的第一天的count(*)select p_day as subDa...原创 2020-04-02 16:28:31 · 752 阅读 · 0 评论 -
hiveSql 优化
hive sql 优化转载 2019-08-26 19:20:53 · 1504 阅读 · 0 评论 -
hive mapjoin 原理
1、什么是MapJoin?MapJoin顾名思义,就是在Map阶段进行表之间的连接。而不需要进入到Reduce阶段才进行连接。这样就节省了在Shuffle阶段时要进行的大量数据传输。从而起到了优化作业的作用。2、MapJoin的原理:即在map 端进行join,其原理是broadcast join,即把小表作为一个完整的驱动表来进行join操作。通常情况下,要连接的各个表里面的数据会...转载 2019-05-21 17:38:14 · 2315 阅读 · 0 评论 -
left join 会增多数据条数的(比左边表数据多了)
1、insert overwrite table t_xiaoming_test_for_dau values("1",6,"2.7.1"),("1",3,"2.7.1"),("1",6,"2.7.2"),("2",6,"2.7.2");insert overwrite table t_xiaoming_test_for_newUser values("1",6,"2.7.1"),("2"...原创 2019-05-20 18:20:44 · 13652 阅读 · 0 评论 -
hive join 多条件on后,where后面怎么写
1、建表(1)、create external table if not exists t_xiaoming_test_for_dau( uid string , platform int , ...原创 2019-05-20 16:08:39 · 5809 阅读 · 0 评论 -
Hive-行转列和列转行(转载)
Hive行转列和列转行表1:cityInfocityname regionname上海 四川北路上海 虹梅路上海 音乐学院上海 徐家汇上海 陆家嘴上海 古北北京 东四北京 复兴门北京 新街口北京 地安门表2:cityInfoSetcityname address_set上海 四川北路,......原创 2019-04-22 20:11:14 · 751 阅读 · 0 评论 -
hive函数:regexp_extract 正则表达式函数(字符串选择)
目标:取出["4873748","666"]数组中的数字。方式:正则表达式选择。regexp_extract 函数,第一个参数为要解析的数组或字符串等,第二个参数为正则表达式,第三个索引。这里,参数一:["4873748","666"]参数二:([0-9]+) 正则表达式,意为筛选数字,这里的‘+’指的是,多次重复。是正则匹配组的含义参数三:0 (0表示把整个符合正则表达式对应...原创 2019-04-22 19:27:25 · 16893 阅读 · 0 评论