Hive
hive相关
AokCap
这个作者很懒,什么都没留下…
展开
-
Hive练习题之流量统计
需求: 统计每个用户各时间段的流量总计(相隔不超过10分钟的算在一起)数据源:1,2020-02-18 14:20:30,2020-02-18 14:46:30,201,2020-02-18 14:47:20,2020-02-18 15:20:30,301,2020-02-18 15:37:23,2020-02-18 16:05:26,401,2020-02-18 16:06:27,2020-02-18 17:20:49,501,2020-02-18 17:21:50,2020-02-18 18原创 2022-02-09 13:28:47 · 1151 阅读 · 0 评论 -
Hive练习题 字符串与时间类型转换
参考文章:https://blog.csdn.net/a805814077/article/details/115014708概念:时间戳也就是timestamp,是hive中的一种数据类型,与unix_timestamp不是一个概念unix_timestamp可以直接将timestamp转成毫秒(即1970-1-1至今的秒), 也可以将字符串转成毫秒,但需要指定字符串格式from_unixtime可以将unix_timestamp转成timestamp,也就是时间戳to_utc_ti原创 2022-02-08 15:30:35 · 1857 阅读 · 0 评论 -
HQL练习题之连续n天
数据源guid01,2018-02-28guid01,2018-03-01guid01,2018-03-02guid01,2018-03-04guid01,2018-03-05guid01,2018-03-06guid01,2018-03-07guid02,2018-03-01guid02,2018-03-02guid02,2018-03-03guid02,2018-03-06建表create table if not exists test.tb_login (uid stri原创 2022-02-08 14:29:41 · 2513 阅读 · 2 评论 -
Hive练习题之窗口函数构造辅助列
建表create table if not exists test.tb_ab(A string,B int)row format delimited fields terminated by ",";导入数据vim /doit/tb_ab2010,12011,12012,12013,02014,02015,12016,12017,12018,02019,0load data local inpath "/doit/tb_ab" into table test.tb_原创 2022-02-08 13:59:43 · 570 阅读 · 0 评论 -
Hive排序函数 row_number rank dense_rank
row_numer():按查出的记录数前后排序,序号不重复。即第1条记录序号为1,第2条记录序号2,第3条记录序号为3(不考虑3条记录的排序字段是否重复)。rank():跳跃排序,排序字段值相同的序号相同。例如3条记录中前2条排序字段值相同,第3条不同,则前3条记录的排序号为1,1,3。dense_rank():连续排序。例如前4条记录中,1和2的排序字段值相同,3和4的排序字段值相同,则4条记录的排序号为1,1,2,2。...原创 2022-02-08 13:26:42 · 860 阅读 · 0 评论 -
Hive练习题之行转列(二)
需求:+-------------+---------------+-----------------+----------------+---------------------+------------------+| student.id | student.name | student.gender | student.birth | student.department | student.address |+-------------+---------------+-----原创 2022-02-08 11:04:21 · 238 阅读 · 0 评论 -
Hive练习题之炸裂函数+case when+ 模糊匹配
– 建表create table if not exists test.tb_str(id int,str string)row format delimited fields terminated by ",";– 导入vi /doit/tb_str.txt1,hello2,world3,sun4,doorload data local inpath "/doit/tb_str.txt" into table test.tb_str;– 解法with tmp as .原创 2022-02-08 10:53:09 · 846 阅读 · 0 评论 -
HQL&SQL练习
一我们有如下的用户访问数据userId visitDate visitCountu01 2017/1/21 5u02 2017/1/23 6u03 2017/1/22 8u04 2017/1/20 3u01 2017/1/23 6u01 2017/2/21 8u02 2017/1/23 6u01 2017/2/22 4要求使用原创 2020-08-11 16:55:52 · 571 阅读 · 0 评论 -
Hive练习题之用户访问次数
有如下的用户访问数据 tb_visituserId visitDate visitCount u01 2017/1/21 5u02 2017/1/23 6u03 2017/1/22 8u04 2017/1/20 3u01 2017/1/23 6u01 2017/2/21 8u02 2017/1/23 6u01 2017/2/22 4原创 2022-02-08 10:33:07 · 516 阅读 · 0 评论 -
Hive练习题之炸裂函数(二)
建表drop table test.explode_lateral_view;create table test.explode_lateral_view(`area` string,`goods_id` string,`sale_info` string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '|'STORED AS textfile;源数据a:shandong,b:beijing,c:hebei|1,2,3,4,5,6,7,8,9|[{"原创 2022-02-08 10:23:53 · 479 阅读 · 0 评论 -
Hive练习题之炸裂函数(一)
数据源Jack,male,eat-play,北京:海淀-上海:浦东Miso,male,eat-net-play,河北:保定-北京:海淀小明,male,eat-net,河北:张家口-上海:浦东小红,male,net-play,河北:保定-北京:海淀Lily,female,eat-net,河北:保定-北京:海淀Lucy,female,play-eat,北京:海淀-上海:浦东Jack,male,eat-net-play,河北:保定-北京:海淀Miso,male,online-net-eat,河北:原创 2022-02-08 10:18:28 · 599 阅读 · 0 评论 -
Hive练习题之炸裂函数+窗口函数+列转行
数据源name scores张三 语文:78,数学:90,英语:82,历史:77,政治:80,物理:88,化学:79,地理:92,生物:86李四 语文:68,数学:84,英语:79,历史:65,政治:66,物理:78,化学:72,地理:83,生物:75王五 语文:88,数学:69,英语:86,历史:82,政治:70,物理:68,化学:89,地理:95,生物:93朱六 语文:73,数学:76,英语:73,历史:76,政治:75,物理:85,化学:86,地理:85,生物:90钱二 语文:68,数学:原创 2022-02-08 10:10:10 · 304 阅读 · 1 评论 -
Hive相关参数查询(自用)
Hive相关参数查询:使用的引擎:set hive.execution.engine原创 2022-02-07 15:04:28 · 520 阅读 · 0 评论 -
Hive调优(自用)
转载:https://zhuanlan.zhihu.com/p/80718835针对于Hive内部调优的一些方式01.请慎重使用COUNT(DISTINCT col);原因:distinct会将b列所有的数据保存到内存中,形成一个类似hash的结构,速度是十分的块;但是在大数据背景下,因为b列所有的值都会形成以key值,极有可能发生OOM解决方案:所以,可以考虑使用Group By 或者 ROW_NUMBER() OVER(PARTITION BY col)方式代替COUNT(DISTINCT原创 2022-02-07 14:54:19 · 131 阅读 · 0 评论 -
hive中对数字处理(保留小数位,向上取整,向下取整)
保留小数位 roundselect round(12.6784,2);>>> 12.68向下取整 floorselect floor(12.742); >>> 12向上取整 ceilselect ceil(15.1232); >>> 16原创 2020-11-15 19:01:29 · 4464 阅读 · 0 评论 -
Hive练习题之行转列(三种解法)
源数据1,语文,98.02,数学,80.02,政治,78.05,语文,88.05,数学,66.05,政治,99.0– 建表create table if not exists ms (grade_id int, subject_name string, max_score double)row format delimited fields terminated by ",";–导入数据load data local inpath "/doit16/ms.txt" into tab原创 2020-10-16 22:41:57 · 752 阅读 · 0 评论 -
hive的coalesce和nvl的作用
coalesce的作用是返回传入的参数中第一个非null的值而nvl是。。。。。。。原创 2020-10-15 18:14:49 · 3772 阅读 · 1 评论 -
Hive的内部表和外部表的比较
内部表未被external修饰表数据由hive管理(内部表数据存储的位置是hive.metastore.warehouse.dir)删除内部表会直接删除元数据(metadata)及存储数据(仅限于location的)对内部表的修改会将修改直接同步给元数据对于保存的一些业务维度表或者是统计好的报表使用内部表外部表被external修饰的 (create external table )表数据由hdfs管理删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;对于一些公共的数据原创 2020-10-10 16:48:24 · 232 阅读 · 0 评论 -
Hive的分桶表和分区表
定义:分区表:根据某一个字段的值,将表数据分到不同的文件夹分桶表:根据某一个字段的hashcode,将表数据分到多个文件中。区别分区针对的是数据的存储路径,分桶针对的是数据文件。分区提供一个隔离数据和优化查询的便利方式。分桶是将数据集分解成更容易管理的若干部分的另一个技术。为什么要分桶?1,更快,桶为表加上额外结构,链接相同列划分了桶的表,可以使用map-side join更加高效。2,取样sampling更高效。没有分区的话需要扫描整个数据集。...原创 2020-10-10 15:26:43 · 301 阅读 · 0 评论 -
全量表、增量表、拉链表如何生成?
增量表增量抽取使用sqoop将业务系统数据库的表数据导入到hdfs中,因为要导入的是增量数据,所以需要指定更新字段,这个字段有变化就是增量数据再就是指定上一次更新的时间增量导入模板:bin/sqoop import \--connect jdbc:mysql://doitedu01:3306/realtimedw?characterEncoding=utf8\&useUnicode=true \--username root \--password ABC123abc.123原创 2020-10-08 14:21:33 · 1274 阅读 · 0 评论 -
Hive之增量表、全量快照表、拉链表的开发
– 拉链表实战– 1.创建一张用于存储每日增量数据的表drop table test.stu_newdata;CREATE TABLE test.stu_newdata(id int,name string,age string,update_time bigint)partitioned by (dt string)stored as parquet;– 2.创建一张全量每日快照表drop table test.stu;CREATE TABLE test.stu原创 2020-10-08 08:34:23 · 2100 阅读 · 0 评论 -
SparkSession、SparkContext、SQLContext和HiveContext之间的区别
转载:https://www.cnblogs.com/lillcol/p/11233456.htmlSparkContext 是什么?驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调。使用SparkContext,可以访问其他上下文,比如SQLContext和HiveContext。使用SparkContext,我们可以为Spark作业设置配置参数。如果您在spark-shell中,那么SparkContex转载 2020-10-04 12:12:47 · 1091 阅读 · 0 评论 -
SQL练习——用户活跃区间记录表
区间记录表:4号g01,2020-09-01,2020-09-01,2020-09-01 g01,2020-09-01,2020-09-03,2020-09-03 g02,2020-09-01,2020-09-01,2020-09-02 g03,2020-09-01,2020-09-01,9999-12-31 g04,2020-09-02,2020-09-02,2020-09-02 g05,2020-09-02,2020-09-02,2020-09-03 g06,2020-09-02,2020原创 2020-09-30 11:46:05 · 380 阅读 · 0 评论 -
hive中窗口函数rows between(简略)
rows between …… and ……unbounded preceding 起始行unbounded following 结尾行current row 当前行1 preceding 前1行1 following 后1行示例:rows between unbounded preceding and unbounded following 表示起始行到末尾行(分组范围内)...原创 2020-09-29 10:48:56 · 6769 阅读 · 1 评论 -
hive的连接方式(两种)
第一种 本地客户端连接[root@linux01 hive-2.3.1]# bin/hive第二种:远程连接hiveserver2先启动hiveserver2,再通过beeline连接beeline beeline> !connect jdbc:hive2://linux01:10000Connecting to jdbc:hive2://linux01:10000Enter username for jdbc:hive2://linux01:10000: rootEnter p原创 2020-09-28 11:15:56 · 1440 阅读 · 1 评论 -
hive中查看某个函数的用法
desc function extended 函数名;例子:desc function extended min;原创 2020-09-13 15:53:33 · 396 阅读 · 0 评论 -
hive建表后添加表注释
表注释,不是字段注释ALTER TABLE 表名 SET TBLPROPERTIES ('comment' = '注释内容') ALTER TABLE tb_good SET TBLPROPERTIES ('comment' = '商品表')原创 2020-08-20 17:43:42 · 1744 阅读 · 0 评论 -
Hive常用函数case when 练习(二)
员工工资组成表 gz.txtuid jb jj tc deptno(员工id, 基本工资, 奖金, 提成 ,部门编号)1,2000,3000,1500,12,5000,500,1000,23,1500,1000,3000,24,3000,6000,8000,35,1500,2000,1800,16,2500,1000,1900,1部门表 bm.txt1,销售2,技术3,行政员工信息表 yg.txtuid name gender age1,zs,M,28原创 2020-07-27 21:12:47 · 799 阅读 · 0 评论 -
Hive常用函数 case when练习(一)
原始数据(姓名,部门,性别)悟空 A 男娜娜 A 男宋宋 B 男凤姐 A 女热巴 B 女慧慧 B 女建表,导入数据create table tb_case(name string ,dname string ,gender string )row format delimited fields terminated by "\t" ;load data local inpath "/doit16/case.txt" into table tb_case ;需求:得到如下结原创 2020-07-27 08:04:24 · 1118 阅读 · 0 评论 -
Hive调优的实现方法
1.根据业务需求,创建分区表和分桶表2.使用列式存储,开启压缩3.避免使用select *4. 分布式缓存,在hive2.0之前使用小表join大表, 这样就会分布式去缓存前面的小表, 避免reduce程序, 就是在map端join hive2.0以后做优化了,大表在前还是小表在前就都无所谓了5. SQL优化6. hive参数优化(map个数、reduce个数)7. 数据倾斜8. 合并小文件转自另一位大佬的博客https://blog.csdn.net/qq_37933018/articl转载 2020-07-25 17:57:39 · 123 阅读 · 0 评论 -
Hive编号函数练习题(打地鼠)
原始数据(用户 打击顺次 命中与否)u01,1,1u01,2,0u01,3,1u01,4,1u01,5,0u01,6,1u02,1,1u02,2,1u02,3,0u02,4,1u02,5,1u02,6,0u02,7,0u02,8,1u02,9,1u03,1,1u03,2,1u03,3,1u03,4,1u03,5,1u03,6,0在hive中建表create table ds (uid string ,seq int ,mz int)row for原创 2020-07-25 17:37:59 · 251 阅读 · 0 评论 -
Hive窗口函数练习题(连续三天以上有销售记录的店铺)
原始数据(店铺名称, 销售时间, 销售金额)a,2020-02-05,200a,2020-02-06,300a,2020-02-07,200a,2020-02-08,400a,2020-02-10,600a,2020-03-01,200a,2020-03-02,300a,2020-03-03,200a,2020-03-04,400a,2020-03-05,600b,2020-02-05,200b,2020-02-06,300b,2020-02-08,200b,2020-02-09原创 2020-07-25 15:57:36 · 826 阅读 · 0 评论 -
Hive编号函数rank() dense_rank() row_number()
原始数据(姓名, 科目, 成绩)孙悟空 数学 95宋宋 数学 86婷婷 英语 78婷婷 数学 85孙悟空 语文 87婷婷 语文 65娜娜 数学 56宋宋 英语 84孙悟空 英语 68娜娜 语文 94娜娜 英语 84宋宋 语文 64在hive中建表drop table tb_score ;create table tb_score(name string ,subject string ,score double)row format delimited field原创 2020-07-25 13:21:26 · 830 阅读 · 0 评论 -
Hive练习题之窗口函数入门使用
原始数据( 姓名,订单时间,金额)jack,2020-01-01,10tony,2020-01-02,15jack,2020-02-03,23tony,2020-01-04,29jack,2020-01-05,46jack,2020-04-06,42tony,2020-01-07,50jack,2020-01-08,55mart,2020-04-08,62mart,2020-04-09,68neil,2020-05-10,12mart,2020-04-11,75neil,2020-原创 2020-07-25 13:20:08 · 311 阅读 · 0 评论