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

hive udf 使用示例

    博客分类:
  • hive
阅读更多

 在使用过程中,在执行sql的过程中需要将partition按照一定的规则动态分区:

import org.apache.hadoop.hive.ql.exec.UDF;
public class SharedRouter extends UDF {
	private static SolrCloudPainRouter cloudPainRouter;

	public String evaluate(final String shardValue
, final String collection, final String runtime) {
		return getRouter(collection, runtime).getShardIndex(shardValue);
	}

	private SolrCloudPainRouter getRouter(String collection, String runtime) {

		// 构建cloudPainRouter
		return cloudPainRouter;

	}
}

 

 

创建临时函数:

create temporary function tisshare as 'com.dfire.tis.dump.hive.SharedRouter';
 

在hive中调用udf测试:

select tisshare('hello','search4totalpay','daily');
函数说明,此函数一共三个参数,说明如下:
  • 参数1:某列属性
  • 参数2:对应分区tis中的某个索引名称
  • 参数3:运行环境,日常使用‘daily’,线上生产环境'online'

这个udf执行的时候需要依赖一些jar包,所以在启动hive时,需要将jar添加到classpath中去:

hive 启动

hive --auxpath /root/standalone/commons-io-2.3.jar,/root/standalone/commons-logging-1.2.jar,/root/standalone/fastjson-1.1.41.jar,/root/standalone/global-diamond-config-1.0.3-SNAPSHOT.jar,/root/standalone/hive-exec-1.1.0.jar,/root/standalone/noggit-0.6.jar,/root/standalone/slf4j-api-1.7.5.jar,/root/standalone/solr-solrj-5.3.0.jar,/root/standalone/spring-2.5.6.jar,/root/standalone/terminator-manage-pojo-1.0.3-SNAPSHOT.jar,/root/standalone/tis-client-standalone-1.0.3-SNAPSHOT.jar,/root/standalone/tis-solrj-client-1.0.3-SNAPSHOT.jar,/root/standalone/zookeeper-3.4.5.jar

在hive脚本中使用例子

ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/commons-io-2.3.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/commons-logging-1.2.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/fastjson-1.1.41.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/global-diamond-config.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/hive-exec-1.1.0.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/noggit-0.6.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/slf4j-api-1.7.5.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/solr-solrj-5.3.0.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/spring-2.5.6.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/terminator-manage-pojo-1.0.3-SNAPSHOT.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/tis-client-standalone-1.0.3-SNAPSHOT.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/tis-solrj-client-1.0.3-SNAPSHOT.jar;
ADD jar hdfs://cluster-cdh/zeus/hdfs-upload-dir/jar/zookeeper-3.4.5.jar;
CREATE TEMPORARY FUNCTION tisshare as 'com.dfire.tis.dump.hive.SharedRouter';


select tisshare('123','search4totalpay','online') 
 

 

 

分享到:
评论

相关推荐

    大数据 java hive udf函数的示例代码(手机号码脱敏)

    大数据 Java Hive UDF 函数示例代码(手机号码脱敏)是指使用 Java 语言开发的用户定义函数(User Defined Function,UDF),该函数可以在 Hive 中使用,实现手机号码脱敏的功能。在本文中,我们将通过实例代码,...

    HIve UDF 说明书

    Hive提供了在Beeline或CLI中查看函数的命令,如SHOW FUNCTIONS、DESCRIBE FUNCTION 和DESCRIBE FUNCTION EXTENDED 等,这些命令有助于用户了解函数的详细信息,包括函数的描述、参数、返回类型以及使用的示例等。...

    Hive UDF开发

    例如,下面是一个简单的Hello World UDF示例: ```java package udf; import org.apache.hadoop.hive.ql.exec.UDF; public class HelloUDF extends UDF { public String evaluate(String str) { try { return ...

    base64加密解密的hive udf函数

    以下是一个简单的Base64加密和解密UDF示例: 1. 创建一个Java项目,引入Hive相关的依赖库,如`hive-exec`和`hive-serde`。 2. 编写一个名为`Base64UDF`的类,继承`org.apache.hadoop.hive.ql.udf.generic....

    Hive的Udf函数进行数据脱敏

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

    dataiku hive udf

    在"dataiku-hive-udf-master"这个压缩包中,我们可以期待找到各种不同类型的Hive UDF示例源代码。这可能包括了各种实用的函数,如日期处理、数据转换、复杂逻辑判断等。开发者可以通过这些源码学习如何编写自己的...

    hive自定义UDF编写函数.docx

    Hive 自定义 UDF 编写函数 本文主要讲解了 Hive 中自定义 UDF 函数的编写方法,包括创建 UDF 类、实现自定义函数逻辑...本文详细介绍了 Hive 中自定义 UDF 函数的编写和使用方法,为开发者提供了一个详细的参考指南。

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

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

    Java_facebook Hive udf.zip

    学习和使用这些Java编写的Facebook Hive UDF,不仅可以提升对Facebook数据的处理能力,也能深入理解大数据处理的实践,对于Java开发者和数据分析师来说都是宝贵的经验。同时,这种定制化开发的经验也可以应用到其他...

    hive-exec-udf

    三、Hive UDF使用示例 例如,我们想实现一个UDF,用于计算两个日期之间的天数差: ```java public class DateDiff extends UDF { public Integer evaluate(Date date1, Date date2) { if (date1 == null || date...

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

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

    spark-hive-udf:Spark Hive UDF示例

    Spark Hive UDF示例 建立项目 mvn clean package 将spark-hive-udf-1.0.0-SNAPSHOT.jar复制到边缘节点临时目录 spark-hive-udf]# cp target/spark-hive-udf-1.0.0-SNAPSHOT.jar /tmp 通过提供罐子来启动火花壳 spark...

    java6string源码-jet-hive-udf:有用的hiveudf函数,包含日期计算,ip,useragent解析函数,加密解密等

    jet-hive-udf 简介 jet-hive-udf 包含了一些有用的hive udf函数,包含日期计算,ip,useragent解析函数,加密解密等. 注意: jet-hive-udf支持hive-0.11.0或更高版本. 其中useragent解析需要使用到java8+,其他需要java...

    Hive_UDF.rar_hive_sqoop

    在这个名为“Hive_UDF.rar_hive_sqoop”的压缩包中,我们可能会找到关于如何集成和自定义 Hive 用户定义函数(UDF)以及利用 Sqoop 进行数据导入导出的详细资料。 首先,让我们深入理解 Hive UDF。Hive 支持多种...

    HiveUDF:蜂巢样本UDF

    HiveUDF 此Hive UDF示例代码包含2个函数:MyUpper()和MyContains() 它们在Hive 0.12、0.13和1.0中进行了测试。 要使Hive UDF在Drill中工作,请关注以下博客:一种。 如何制作罐子mvn package ## b。 准备一个带...

    hive时间按月份加减UDF

    文件名称“addmonth”很可能对应的是实现月份加法的UDF,或者是一个包含此类UDF的示例代码或测试数据。 总的来说,Hive时间按月份加减UDF是提高Hive对日期处理能力的一种有效方式,它使得用户能够更灵活地处理时间...

    hive按月份加减udf范例

    标题"hive按月份加减udf范例"意味着我们将探讨如何在Hive中创建和使用UDF来对日期进行月份级别的加减操作。通常,Hive的标准日期函数可能无法满足这种特定需求,因此我们需要自定义函数来完成这个任务。 描述中的...

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

    在大数据处理领域,Hive 是一个非常重要的工具,它提供了SQL-like 的接口来查询和管理大规模数据集。而用户定义函数(User Defined ...理解如何使用和开发 Hive UDF,对于提升大数据分析的效率和质量至关重要。

    hive的自定义函数

    下面是一个简单的自定义UDF示例,用于格式化时间戳为指定日期格式: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.hadoop.hive.ql....

    hive自定义函数demo

    本示例“hive自定义函数demo”将探讨如何在Hive中开发和使用自定义函数(UDF),这对于扩展Hive的功能和适应特定业务需求至关重要。下面,我们将深入学习与Hive自定义函数相关的知识。 1. **什么是Hive UDF?** ...

Global site tag (gtag.js) - Google Analytics