`
iamzhongyong
  • 浏览: 807885 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hive UDF编写

    博客分类:
  • java
 
阅读更多

hive的类SQL预发给数据挖掘工作者带来了很多便利,海量数据通过简单的sql就可以完成分析,有时候hive提供的函数功能满足不了业务需要,就需要我们自己来写UDF函数来辅助完成,下面用一个简单的例子说明过程,以及注意事项。

 

UDF函数其实就是一个简单的函数,执行过程就是在Hive转换成mapreduce程序后,执行java方法,类似于像Mapreduce执行过程中加入一个插件,方便扩展. UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF .

 

(1)首先引入jar包,我在写的时候引入了两个jar包,分别是hive-exec-0.8.0.jar hadoop-core-0.20.2.jar

(2)写一个类,继承UDF类,例如:public class CheckAddress extends UDF

(3)写一个方法,名称为evaluate,此方法支持重载,例如:

public String evaluate(String srcAddress,String countyId){return ""}

(4)写完之后,导入jar包(命令行或者eclipse中自带的export功能),jar包上传到hadoop的运行环境中

(5)导入jar包hive,命令如下:

 

//add jar文件

add jar /home/bixiao.zy/udf/checkaddress.jar;

//创建函数,名称自定义,as后面是jar保重的类名称

create temporary function checkaddress as  'com.taobao.logistics.CheckAddress'

//在hive sql中使用

select *from  order  where pt='XXXXXXXXX'  and checkaddress(receiver_address,receiver_county_id)='1' 

 

 

如果需要写脚本来跑定时任务,那么上面的三段必须在一个会话过程中,否则函数会没有添加进去。

 

$HIVE_HOME/bin/hive -u XXX-p XXXX-e   “都在这里面呵呵”

 

分享到:
评论

相关推荐

    hive UDF需要jar包

    Hive UDF的实现通常涉及到编写Java代码,并将其打包成JAR(Java Archive)文件,然后在Hive会话中注册这个JAR,以便可以在SQL查询中调用自定义函数。以下是对标题和描述中涉及知识点的详细解释: 1. **Hive UDF**:...

    hive自定义UDF编写函数.docx

    Hive 自定义 UDF 编写函数 本文主要讲解了 Hive 中自定义 UDF 函数的编写方法,包括创建 UDF 类、实现自定义函数逻辑、编译和打包 UDF jar 包、上传至 Hive 服务器并注册自定义函数。 一、创建 UDF 类 为了实现...

    HIve UDF 说明书

    Hive UDF(User-Defined Functions,用户定义函数)是Hive中强大的功能,允许用户在Hive查询中使用自定义的函数来进行更复杂的操作。Hive是一个建立在Hadoop基础上的高级数据仓库工具,它允许用户使用类似SQL的语言...

    Hive UDF开发

    首先需要编写一个Java类,继承自`org.apache.hadoop.hive.ql.exec.UDF`。例如,下面是一个简单的Hello World UDF示例: ```java package udf; import org.apache.hadoop.hive.ql.exec.UDF; public class HelloUDF...

    base64加密解密的hive udf函数

    2. 编写一个名为`Base64UDF`的类,继承`org.apache.hadoop.hive.ql.udf.generic.GenericUDF`。这个类将包含加密和解密方法。 ```java import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import org....

    dataiku hive udf

    开发者可以通过这些源码学习如何编写自己的Hive UDF,了解函数的签名、执行流程和异常处理机制。 Hive UDF的开发通常涉及到以下步骤: 1. **定义函数类**:创建一个Java类,继承Hive提供的基类,如`org.apache....

    Hive的Udf函数进行数据脱敏

    ADD JAR /path/to/your/hiveUDF.jar; CREATE TEMPORARY FUNCTION mask AS 'com.yourpackage.MaskingUDF'; ``` 4. **使用UDF**: 注册完成后,你可以在查询中直接使用`mask`函数。假设我们有一个包含手机号码的表`...

    hive的UDF的编写.docx

    hive的UDF编写指南 hive是大数据处理的重要工具之一,其提供了强大的数据处理能力。然而,在实际应用中,我们可能需要根据业务需求编写自定义的UDF(User Defined Function),以满足特定的数据处理需求。下面,...

    Java_facebook Hive udf.zip

    "Java_facebook Hive udf.zip"这个压缩包文件很可能包含了一组专门为Facebook定制的Hive UDF,用Java语言编写。这些UDF可能是为了处理Facebook平台上的海量数据,例如用户行为、社交网络分析、广告效果评估等场景。...

    javasql笔试题-spark-hive-udf:展示如何在ApacheSpark中使用HiveUDF的示例项目

    Hive UDF 项目 介绍 该项目只是一个示例,包含多个 (UDF),用于 Apache Spark。 它旨在演示如何在 Scala 或 Java 中构建 Hive UDF 并在 . 为什么要使用 Hive UDF? Hive UDF 的一个特别好的用途是与 Python 和 ...

    hive-udf(两地址间距离计算+省市区位置解析(Java代码))

    在这个“hive-udf”项目中,我们主要探讨的是如何利用Java编写UDF来实现两个地址间的距离计算以及省市区位置的解析。 首先,地址转换成经纬度是计算距离的基础。地理坐标系统通常使用经度和纬度来定位地球上任意...

    各种情况手机号清洗udf函数(hive impala)

    我们将涵盖正则表达式在手机号码清洗中的应用,以及如何编写和使用Java UDF在Hive和Impala中实现这个过程。 1. **手机号码格式问题**:手机号码可能因历史记录、输入错误或不同的国家/地区标准而呈现多种格式。例如...

    * hive脱敏UDF函数 *对一些敏感信息进行脱敏处理,替换位置可自定义,脱敏符号可随机也可自定义

    * 脱敏UDF函数 * 功能:对一些敏感信息进行脱敏处理,替换方式可选择自定义替换,如'#','*'等,,如不指定脱敏符号,使用个随机字符替换 * 脱敏位置可自定义,不指定位置,会对数据进行全脱敏 * 例如身份证信息: ...

    Spark不能使用hive自定义函数.doc

    5. **测试与验证**:完成上述配置后,需要通过编写测试代码来验证 Hive UDF 是否可以在 Spark 中正常工作。可以通过简单的 SQL 查询或者 DataFrame API 来调用 Hive UDF,观察是否能够得到预期的结果。 #### 四、...

    Hive_UDF.rar_hive_sqoop

    创建自定义 UDF 需要编写 Java 代码并进行编译,然后在 Hive 中注册这个函数,使其可用于 SQL 查询。 在压缩包中的“Hive_UDF”可能包含了以下内容: 1. **UDF 示例代码**:展示了如何编写 Java 类来实现 UDF,并...

    HIVE自定义UDF函数

    而自定义用户定义函数(UDF)是 Hive 中的一个重要功能,允许用户根据自己的需求编写自定义函数,以便在 Hive 查询中使用。 如何在 Hive 中创建自定义 UDF 函数: 步骤一:编写 Java 程序 首先,您需要编写一个 ...

    nzrs-hive-udf:NZRS 中使用的 Hive UDF 集

    1. **Hive UDF 开发**:了解如何创建自定义的 Hive 函数,包括编写 Java 类,实现特定的接口(如 `HiveUDF`, `HiveUDAF`, 或 `HiveUDAFFinalizer`),以及使用 Hive 提供的注解(如 `@Description` 和 `@...

    hive-udf-collections:Hive 用户定义函数 (UDF) 集合

    - UDFs 必须用 Java 编写,并且需要实现 `org.apache.hadoop.hive.ql.exec.UDF` 接口。 2. **集合数据类型** - Hive 支持多种集合数据类型,包括 ARRAY、MAP 和 STRUCT。这些数据类型可以用于存储复杂的结构化...

    hive-exec-udf

    1. **编写Java类**:实现Hive提供的特定接口,如UDF、UDAF或UDTF。 2. **添加元数据**:在Hive Metastore中注册UDF,指定函数名、输入/输出类型等信息。 3. **编译与部署**:将Java类打包成JAR文件,上传到Hadoop...

    hive按月份加减udf范例

    UDF通常由Java编写,然后在Hive中注册,以便可以在查询语句中调用。在这个例子中,UDF可能是用于接受一个日期,并增加或减少指定的月份数量。 为了实现这样的UDF,我们首先需要创建一个Java类,该类继承自Hive的`...

Global site tag (gtag.js) - Google Analytics