Hive自定义UDAF函数实现多行数据平均数计算.pdfVIP

  • 1
  • 0
  • 约9.36千字
  • 约 18页
  • 2026-02-11 发布于北京
  • 举报

Hive自定义UDAF函数实现多行数据平均数计算.pdf

Hive自定义函数实例——hiveudaf函数

【实验目的】

1、实现求多行数据的平均数

【实验原理】

1、Hive查询数据时,有些聚类函数在HQL没有自带,需要用户自定义实现。

2、用户自定义聚合函数:Sum,Averagen–1

一、用法

1、以下两个包是必需的importorg.apache.hadoop.hive.ql.exec.UDAF和

org.apache.hadoop.hive.ql.exec.UDAFEvaluator。2、函数类需要继承UDAF类,类

Evaluator实UDAFEvaluator接口。3、Evaluator需要实现init、iterate、ter

minatePartial、merge、terminate这几个函数。a)init函数实现接口UDAFEvaluator的i

nit函数。b)iterate接收传入的参数,并进行的迭代。其返回类型为boolean。

c)terminatePartial无参数,其为iterate函数迭代结束后,返回迭代数据,

terminatePartial类似于hadoop的Combiner。d)merge接收terminatePartial的返回结果,

进行数据merge操作,其返回类型为boolean。e)terminate返回最终的聚合函数结果。

【实验环境】

本次环境是:6.5+jdk1.7.0_79+hadoop2.4.1+hive‑0.12.0+Mysql5.1+eclipse

【实验步骤】

一、UDAF代码编写

1.1双击桌面上的eclipse图标,打开eclipse,然后点击左上角的“file”新建Java项目

1.2在新界面中将新建的Java项目命名为“hive”,点击右下角的“Finish”按钮

1.3右击新建好的“hive”项目,BuildPath‑AddExternalArchives,给项目添加写UDF函

数所需的hive包

Hive自定义函数实例——hiveudaf函数

【实验目的】

1、实现求多行数据的平均数

【实验原理】

1、Hive查询数据时,有些聚类函数在HQL没有自带,需要用户自定义实现。

2、用户自定义聚合函数:Sum,Average……n–1

一、用法

1、一下两个包是必须的importorg.apache.hadoop.hive.ql.exec.UDAF和org.apache.hadoop.

hive.ql.exec.UDAFEvaluator。

2、函数类需要继承UDAF类,类Evaluator实UDAFEvaluator接口。

3、Evaluator需要实现init、iterate、terminatePartial、merge、terminate这几个函数。

a)init函数实现接口UDAFEvaluator的init函数。

b)iterate接收传入的参数,并进行的轮转。其返回类型为boolean。

c)terminatePartial无参数,其为iterate函数轮转结束后,返回轮转数据,terminatePartial类

似于hadoop的Combiner。

d)merge接收terminatePartial的返回结果,进行数据merge操作,其返回类型为boolean。

e)terminate返回最终的函数结果。

【实验环境】

本次环境是:6.5+jdk1.7.0_79+hadoop2.4.1+hive-0.12.0+Mysql5.1+eclipse

【实验步骤】

一、UDAF代码编写

1.1双击点击桌面上的eclipse图标,打开eclipse,点击左上角的“file”新建javaProje

1.2在新见面给新建的javaProject项目命名为“hive”,点击右下角的“Finish”按钮

1.3右击新建好的“hive”项目,BuildPath-AddExternalArchives,给项目添加写UDF函数所需

的hive包

1.4找到hive包所在的目录,选中所有的

文档评论(0)

1亿VIP精品文档

相关文档