hive
文章平均质量分 50
hunter95671
这个作者很懒,什么都没留下…
展开
-
Hive行转列函数与列转行函数
行转列concat(string,string……):字符串连接concat_ws(参数1,string,string……):参数1是分隔符,按分隔符分隔连接字符串collect_set(字段名):将字段的值去重,产生array类型字段列转行Explode(字段名):将某列中的array或map拆分成多行Split(字段名,分隔符):根据分隔符来切分某字段元素Lateral view:写在split,explode等UDTF前,将一列数据拆成多行,再聚合...原创 2022-02-24 10:11:38 · 935 阅读 · 0 评论 -
Hive中常用的系统函数
常用日期函数unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp();select unix_timestamp(“2020-10-28”,‘yyyy-MM-dd’);from_unixtime:将时间戳转为日期格式select from_unixtime(1603843200);current_date:当前日期select current_date;current_timestamp:当前的日期加时间select current_time原创 2022-02-16 11:31:39 · 226 阅读 · 0 评论 -
Hive的架构原理及组成
一、Hive架构图二、架构组成(1)、用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)(2)、元数据:Metastore元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、 表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore(3)、Hadoop使用 HDFS 进行存原创 2021-12-01 10:10:56 · 7020 阅读 · 0 评论 -
Hive中的with as使用
一、介绍在我们写一些结构比较复杂的SQL语句时,可能某个子查询在多个地方有重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQLwith as 也叫做子查询部分,首先定义一个sql片段,该sql片段会被整个sql语句所用到,让sql语句的可读性更高些,作为提供数据的部分,也常用在union等操作中。with as就类似于一个视图或临时表,可以用来存储一部分的sql语句作为别名,不同的是with as 属于一次性的,而且必须要和其他sql一起使用才可以!原创 2021-11-10 11:03:12 · 2570 阅读 · 0 评论 -
Hive中的SMB(Sort-Merge-Buket) Join
SMB join (针对bucket mapjoin 的一种优化)条件1)set hive.auto.convert.sortmerge.join=true;set hive.optimize.bucketmapjoin = true;set hive.optimize.bucketmapjoin.sortedmerge = true;set hive.auto.convert.sortmerge.join.noconditionaltask=true;2) 小表的bucket数=大表bucke原创 2021-11-03 18:04:58 · 2072 阅读 · 0 评论 -
Hive和数据库比较
Hive 和数据库除了拥有类似的查询语言,再无类似之处。1)数据存储位置Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。2)数据更新Hive 中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的,3)执行延迟Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。4)数据规模Hive 支持很大规模的数据计算;数据库可以支持的数据规模较小。...原创 2021-10-27 16:29:47 · 160 阅读 · 0 评论 -
数据倾斜及一些解决方法
一、数据倾斜原理做大数据开发,很有可能会遇到数据倾斜的问题,要想解决数据倾斜,首先要理解什么是数据倾斜,以及产生数据倾斜的原因。数据倾斜主要是指:主要就是数据在每个节点上的分配不均,导致个别节点处理速度很慢,使得程序迟迟不能运行结束。主要表现为:在mapreduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key中的的条数比其他key要多很多,这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致原创 2021-10-01 13:13:04 · 4875 阅读 · 0 评论 -
使用Hive查询第n高的数据
一、题目现在有“学生成绩表”,记录了学生选修课程的名称以及成绩。现在需要找出语文课中成绩第n高的学生成绩。如果不存在第n高成绩的学生,那么查询应返回 null。二、学生成绩表的建立及数据导入#学生成绩表建立create table student_score(sno varchar(5),cname varchar(10),score int) row format delimited fields terminated by ',';#数据导入load data local inpath '原创 2021-08-13 16:51:35 · 584 阅读 · 0 评论 -
基于hive的SQL排名函数详解
前言在hive的学习中接触到了三种很实用的排名函数,这些函数在Mysql8.0版本中也已存在,分别是:Rank(),Dense_rank(),Row_number(),虽然都是排名函数,但三者间的些许差异很容易让人搞混,在这篇文章中,我将基于hive结合一个学生成绩排名的例子来对这三种排名函数进行解释与辨析。一、学生成绩表准备进行学生表的创建以及样例数据的导入create table stu(sno varchar(5),score int) row format delimited field原创 2021-07-28 11:46:28 · 2283 阅读 · 0 评论