栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

hive3自定义函数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

hive3自定义函数

一.UDF

        概念说明:user defined function

 特点特征:

应用场景:in:out=1:1,只能输入一条记录当中的数据,同时返回一条处理结果.

代码实现:自定义一个java类

继承UDF类

约定俗成的重写evaluate方法

public String evaluate(String input,int maxSaveStringLength,String replaceSign) {
             if(input.length()<=maxSaveStringLength){
                    return input;
             }
             return input.substring(0,maxSaveStringLength)+replaceSign;
       }

打包类所在项目成一个jar包并上传到hive所在机器

在hive中执行add jar操作,将jar加载到classpath中。

add jar hdfs://'jar包路径';

在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数

create temporary function mask as '包联到类名';

hive sql中像调用系统函数一样使用udf函数

二.UDAF

概念说明 :自定义udaf函数self_count,实现系统udaf count的功能

特点特征: in:out=n:1,即输入N条数据,返回一条处理结果,即列转行

应用场景:聚合函数

代码实现:自定义一个java类

继承UDAF类

内部定义一个静态类,实现UDAFevaluator接口

实现方法init,iterate,terminatePartial,merge,terminate共5个方法.

打包类所在项目成一个jar包并上传到hive所在机器

在hive中执行add jar操作,将jar加载到classpath中。

add jar hdfs://'jar包路径';

在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数

create temporary function mask as '包联到类名';

hive sql中像调用系统函数一样使用udf函数

三.UDTF

概念说明:

特点特征:解决一行输入多行输出,即1:n,即行转列应用;;

应用场景:

代码实现:lateral view explode+udf

四.关于Mapjoin问题的剖析

概念说明 join本来应该是reduce进行关联查找,改成由map端关联查找

特点特征: 减少了reduce的处理,减少数据移动,提升了IO和计算效率

应用场景:大表join小表的时候

代码实现:hive中默认开启

4.2关于数据倾斜的问题剖析

概念说明:大数据处理环境下,数据处理过程明显的倾斜现象,导致任务最后无法完成

特点特征:木桶原理,执行时间,取决于最后一个task的完成时间

应用场景:

        假倾斜场景:实际数据米有问题,由于人为代码原因导致的倾斜

                        比如:数据格式不对,SQL编写不合理

        真倾斜场景:数据或者任务本身的存在客观的倾斜性

                        比如:硬件机器本身配置不均衡导致的计算能力倾斜问题

        解决方案:让硬件更加平衡

关于二次排序的问题剖析

概念说明:在map到reduce的处理过程中,按照2字段进行升序排列,而不是像默认的一次排 序那样,只按照可以一个字段排序

特点特征:2个字段排序,第一个字段若有比较结果则按照第一个,若相等按照第二个

应用场景:单个字段不能满足的时候

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号