Hive
文章平均质量分 76
荒野求思
人生就像写代码,总有bug出现
展开
-
被CTO推荐的SQL总结
写SQL很多年后,做的小总结原创 2022-09-29 22:53:47 · 3219 阅读 · 2 评论 -
Hive left join on and where 对结果集的影响 + group by 和 row_number 的执行顺序
some summary about hivesql 过程select * from table 历经下面几个过程:解析:将SQL字符串解析成语法树AST,判断表示否存在、字段是否正确编译:将AST编译成逻辑执行计划优化:对执行计划进行优化执行:逻辑执行计划转为物理执行计划,MR/SparkHive 仅仅支持等值连接,on a.id >= b.id 不允许,on a.id = b.id 是可以的。...原创 2021-06-14 10:02:02 · 3596 阅读 · 0 评论 -
Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)
目录总结:案例实操:总结:RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算这三个函数常常和开窗函数结合在一起使用案例实操:1,计算没门科目的成绩排名:[isea@hadoop108 datas]$ cat score.txt 悟空 语文 87悟空 数学 95......原创 2018-12-04 09:45:55 · 35569 阅读 · 4 评论 -
Hive的表操作(表名的修改,列的修改)
关于表的修改命令如下:包括更改表名,给表增加字段,查看表的信息,表字段的替换1,表名的修改:0: jdbc:hive2://hadoop108:10000> show tables;+-----------+--+| tab_name |+-----------+--+| stu1 || stu2 || stu3 || stu_ex1 ...原创 2018-12-04 08:24:34 · 2510 阅读 · 0 评论 -
Hive的常用函数(nvl,case when,行转列,列转行,爆炸函数)
目录综述:NVL:case when:行转列,CONCAT,CONCAT_WS,COLLECT_SET:列转行:EXPLODE,LATERAL VIEW:综述:在Hive中有六类常用的函数,除了本文讲述的四类函数之外,还有rank函数,和开窗函数,Hive中的自定义函数一般被分成了三类UDF:uer-defined-function 一进一出UDAF:user...原创 2018-12-06 14:52:04 · 8344 阅读 · 1 评论 -
Hive的窗口函数(附带上手案例)
目录窗口函数的概述与总结:可上手案例实操:总结:窗口函数的概述与总结:1.什么时候用开窗函数?开窗函数常结合聚合函数使用,一般来讲聚合后的行数要少于聚合前的行数,但是有时我们既想显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数.如下:+-------+-------------+-------+---------------+--+| name | ...原创 2018-12-03 19:18:20 · 642 阅读 · 1 评论 -
Hive文件存储格式(TEXTFILE 、ORC、PARQUET三者的存储格式的压缩对比和查询速度对比)
综述:HIve的文件存储格式有四种:TEXTFILE、SEQUENCEFILE、ORC、PARQUET,前面两种是行式存储,后面两种是列式存储;所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了A方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。如果为textfile的文件格式,直接load就OK,不需要走MapRed......原创 2018-12-06 11:51:06 · 28596 阅读 · 4 评论 -
让分区表和数据产生关联的三种方式
目录总结:方式一:上传数据后添加分区alter add:方式二:上传数据后修复msck:方式三:创建文件夹后load数据到分区:总结:总结:让分区表和数据产生关联的方式有三种:①先在HDFS上创建分区的目录,并上传数据到该目录,最后在使用alter table add partition②先在HDFS上创建分区的目录,并上传数据到该目录,最后使用msck re...原创 2018-12-03 10:29:17 · 934 阅读 · 0 评论 -
Hive中的分区表
目录总结:分区结构图和原理:上手案例实操: 总结:总结:①创建分区表的时候,指定非表字段的分区字段,使用partitioned by ;②向分区表中插入数据的时候,在表名的后面要加上partition(分区字段名=分区字段值)③如果一个表是分区表,那么该分区表在HDFS上是一个以表名为名的路径,那么同时,该路径下还有分区的路径,以分区字段=分区字段值的形式命名。④使用wh...原创 2018-12-03 09:33:07 · 510 阅读 · 0 评论 -
Hive中外部表和管理表(创建表的三种方式)
目录总结: Hive中创建一张表:创建一张表的同时,借助as 来导入数据:创建一张表的同时,借助like 来获取表结构而不是数据:外部表:外部表的使用 场景:结合location来使用:外部表和内部表的转化:总结: 总结: 1,删除管理表的时候,会将管理表的HDFS上的数据和Metastore中的元数据(表结构等)都删除掉:而删除外部表的时候,仅会删除Me...原创 2018-12-03 08:50:19 · 2671 阅读 · 0 评论 -
Hive的分桶表和抽样查询(附带案例,分桶和分表的区别)
目录总结:分桶表:分桶和分区的区别:抽样查询:总结:总结:①分桶为抽样查询而生,分桶表的创建使用【clustered by (分桶字段)into 桶的个数 buckets】 ,往分桶表中导入数据的时候,需要借助第三张表select table_tmp 目的是借助MapReduce来实现导入不同的桶中,分桶的规则是分桶字段的hash值,模Reducer的个数;②分桶切割...原创 2018-12-02 23:10:05 · 838 阅读 · 0 评论 -
Hive的排序(Order by,Sort by,Distribute by,Cluster by)
目录总结:Order by:Sort by:Distribute by:Cluster by:总结:总结:①order by 全排序,最终会使用一个Reducer生成一个有序的文件,如果输入的数据太大的话,一个Reducer根本应付不过来;②sort by ,会启用多个Reducer进行分区排序(对数据随机分区),并生成多个文件,文件内部是有序的,全局无序;③di...原创 2018-12-02 20:05:31 · 1216 阅读 · 0 评论 -
Hadoop的压缩与Hive中设置Map和Reduce压缩
目录综述:MR支持的压缩方式:压缩格式和对应的编码解码器:压缩性能的比较: 压缩参数的配置:Hive中指定Map输出压缩:Hive中指定Reducer输出压缩:综述:Hadoop的数据压缩主要在三个地方:Map数据的输入;Mapper数据的输出;Reduce数据的输出;MR支持的压缩方式: 压缩格式 工具 ...原创 2018-12-04 18:54:34 · 900 阅读 · 0 评论 -
Hive的查询操作(group by , join, 多表连接)
目录数据准备:分组实操练习:Join连接实操练习:多表的连接实操练习:数据准备:1,创建emp表和dept表,并向其中导入如下的数据:create database db_select;use db_select;create table if not exists dept(deptno int,dname string,loc int)row fo...原创 2018-12-02 18:29:11 · 8890 阅读 · 1 评论 -
HIve自定义函数(自定义UDF函数)
步骤如下:1,导入依赖<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec --> <dependency> <groupId>org.apache.hive</groupId> <artifact...原创 2018-12-04 18:08:51 · 400 阅读 · 0 评论