
hive
文章平均质量分 68
hive
薛定谔的猫1982
技术博客
展开
-
Hive(十七)beeline
在嵌入式模式下,运行嵌入式的Hive(类似Hive CLI),而远程模式可以通过Thrift连接到独立的HiveServer2进程上。Hive客户端工具后续将使用Beeline 替代HiveCLI ,并且后续版本也会废弃掉HiveCLI 客户端工具,Beeline是 Hive 0.11版本引入的新命令行客户端工具,它是基于SQLLine CLI的JDBC客户端。beeline在连接过程中可能会受到hadoop的权限验证的限制,所以在启动beeline之前,需要去更改Hadoop的配置。原创 2024-08-14 21:41:59 · 606 阅读 · 0 评论 -
Hive(十六)having和排序
有别于order by ,sort by可以指定reducer的个数,然后再对reducer里面的数据再排序,也可以得到全局的排序结果。distribute by 一般是配合sort by 使用的。利用distribute by对数据进行分类,然后再在每一个分类中对数据进行排序.如果distribute by和sort by的字段一致,那么可以写成cluster by。order by 是最常用的一种排序,全局排序,所有的数据会在一个reducer上面进行排序,所以一般使用这个函数进行排序的时候速度较慢。原创 2024-08-14 12:40:44 · 1386 阅读 · 0 评论 -
Hive(十四)窗口函数
不 同的是,聚合函数的作用于由 GROUP BY 子句聚合的组,而窗口函数则作用于一个窗口, 这里,窗口是由一个 OVER 子句 定义的多行记录。聚合函数对其所作用的每一组记录输 出一条结果,而窗口函数对其所作用的窗口中的每一行记录输出一条结果。首先,需要认识到,窗口函数并不是只有 hive 才有的,SQL 语法标准中,就有窗口函数。4.获取最早的20%的顾客的消费名单 - 首先需要先将数据按照消费日期来进行排序,其次需要将按照排序之后的结果将数据放到5个桶中,获取第一个桶的数据。原创 2024-08-14 10:04:02 · 630 阅读 · 0 评论 -
Hive(十五)join
hive join 主要包括join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)、left semi join(左半连接)、map side join(map端连接)六种用法,其中inner join 和 join等价,left outer join 和 left join等价,right outer join 和 right join 等价,full outer join 和 full join等价。原创 2024-08-14 10:04:36 · 549 阅读 · 0 评论 -
Hive(十三)自定义UDF与UDTF
在Hive中,如果Hive原生提供的函数不能够处理数据,那么Hive允许用户自定义函数,在Hive3.X中,需要定义类继承GenericUDF类。上传到服务器上,在hive中添加jar包。自定义udf,添加pom依赖。原创 2024-08-13 16:51:08 · 216 阅读 · 0 评论 -
Hive(十二)函数分类
特点是一进多出,输入一行数据获取到多行结果,例如explode。UDTF在使用的时候必须紧贴select语句,例如select explode(bbb) from bbb;例如,如果有一个包含数组的列,可以使用Lateral View拆分数组中的元素为多行数据。特点是一进一出,指的是输入一行数据会获取到一行结果。count,sum,avg,max,min,还有前面讲的列转行函数collect_set,collect_list等。year,concat_ws,length,concat,split等。原创 2024-08-13 16:18:57 · 295 阅读 · 0 评论 -
Hive(十一)函数 行转列
collect_set()函数与collect_list()函数:列转行专用函数,都是将分组中的某列转为一个数组返回。有时为了字段拼接效果,多和concat_ws()函数连用。在 Hive 中想实现按某字段分组,对另外字段进行合并,可通过collect_list()或者collect_set()实现。collect_list()函数 - - 不去重。collect_set()函数 - - 去重。行转列指的是将多行的数据拼接之后放到一列上。数据 student1.txt。数据 game1.txt。原创 2024-08-13 13:15:46 · 364 阅读 · 0 评论 -
Hive(十)函数 列转行
select * from (select name, x, a from people lateral view explode(xinge) x_tmp as x lateral view explode(aihao) a_tmp as a) tmp where x='活泼' and a='打篮球';例如,如果有一个包含数组的列,可以使用Lateral View拆分数组中的元素为多行数据。列转行是指将表中的列数据转换为行,通常使用LATERAL VIEW EXPLODE语法结合SELECT语句。原创 2024-08-13 10:38:01 · 1261 阅读 · 0 评论 -
Hive(九)函数
其中select explode(wordarray) w from words是一个子查询,结果放到ws这个临时表中,其中又给字段给了一个别名w,外面就对w进行操作。nvl(s1, s2):如果s1的值不为null,那么返回s1的值;如果s1的值为null那么返回s2的值;1.拼接多个字符串,并且在拼接的时候指定字符串之间的间隔符号 webs.txt。,可以根据函数的应用类型进行归纳分类,比如:数值类型函数、日期类型函数、字符。,可以根据函数的输入输出行数进行分类,比如:UDF、UDAF、UDTF。原创 2024-08-13 09:03:14 · 743 阅读 · 0 评论 -
Hive(八)数据类型
例如DECIMAL(5,2)用于存储-999.99到999.99的数字,省略掉小数位,DECIAML(5)表示-99999到99999的数字。Hive有4种带符号的整数类型:TINYINT,SMALLINT,INT,BIGINT,分别对应Java中的byte,short,int,long。基本类型包含:tinyint,smallint,int,bigint,float,double,boolean,string,timestamp,binary。Hive中数据类型可以分为两类:基本类型和复杂类型。原创 2024-08-12 17:54:19 · 530 阅读 · 0 评论 -
Hive(七)分桶表
在实际生产过程中,当数据量比较大,且又希望对数据进行快速分析获取分析结果,并且还能够容忍一定程度上的分析误差的时候,可以考虑对数据进行抽样处理。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分,分区针对的是数据的存储路径,分桶针对的是数据文件。分桶表的基本原理是,首先为每行数据计算一个指定字段的数据的hash值,然后模以一个指定的分桶数,最后将取模运算结果相同的行,写入同一个文件中,这个文件就称为一个分桶(bucket)。对于分区分桶表,会对每一个分区里面的数据进行分桶。原创 2024-08-12 16:46:39 · 484 阅读 · 0 评论 -
Hive(五)内部表和外部表
总的来说,内部表适用于需要由Hive完全管理和控制数据的情况,而外部表适用于希望自行管理数据的情况,保留数据并在删除表时不影响数据的情况。·内部表:由于Hive完全管理内部表的数据,它会在表被删除时,同时删除表对应的数据。·外部表:外部表的数据在加载到表中后并不一定被持久保存,因为外部表的数据是由用户管理的。·外部表:对于外部表,ALTER TABLE语句仅允许更改表的一些元数据信息,例如重命名表、更改列的注释等,但不能更改表的存储位置或数据本身。在重启Hive或重新加载元数据后,内部表的数据会保留。原创 2024-08-11 18:11:28 · 915 阅读 · 0 评论 -
Hive 3.1.3客户端输出大量日志问题解决
输入hive命令,结果出现大量的INFO和WARN信息,最然结果是对的,但是大量的INFO和WARN将结果掩盖了,花了好长时间才找到结果。在hive的conf目录下新建log4j.properties文件输入以下内容。重启hive客户端,就可以解决这个问题了。原创 2024-08-11 10:56:50 · 410 阅读 · 0 评论 -
Hive(四)SQL
Hive中的数据会以文件的形式落地到HDFS上,在Hive的默认文件格式(textfile 文本)下,不支持修改(update和delete)操作。创建p14表,同时在建表的时候,将person表中age原创 2024-08-11 10:56:17 · 1404 阅读 · 0 评论 -
hive(三)安装
hive安装原创 2024-07-29 18:09:10 · 407 阅读 · 0 评论 -
hive(二)安装mysql5.87 centos安装
mysql5.87 centos安装。原创 2024-07-29 17:53:09 · 321 阅读 · 0 评论 -
Hive(一)介绍
在Hive中,库名、表名、字段名、字段类型、分区、分桶等信息属于元数据,是存储在数据库中,默认支持的是Derby。Hive利用类SQL(HQL,Hive Query Language)语言来操作数据,但是底层是将SQL转化为MapReduce来执行(效率低下),Hive更适合于处理离线分析场景。Hive是由Facobook开发的,贡献给Apache的一套进行数据仓库管理的工具,使用类SQL语言来对分布式文件系统中的PB级别的数据来进行读写、管理以及分析。(只用于做离线数据)原创 2024-08-10 12:13:22 · 521 阅读 · 0 评论