在使用过程中,在执行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 语言开发的用户定义函数(User Defined Function,UDF),该函数可以在 Hive 中使用,实现手机号码脱敏的功能。在本文中,我们将通过实例代码,...
Hive提供了在Beeline或CLI中查看函数的命令,如SHOW FUNCTIONS、DESCRIBE FUNCTION 和DESCRIBE FUNCTION EXTENDED 等,这些命令有助于用户了解函数的详细信息,包括函数的描述、参数、返回类型以及使用的示例等。...
例如,下面是一个简单的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加密和解密UDF示例: 1. 创建一个Java项目,引入Hive相关的依赖库,如`hive-exec`和`hive-serde`。 2. 编写一个名为`Base64UDF`的类,继承`org.apache.hadoop.hive.ql.udf.generic....
ADD JAR /path/to/your/hiveUDF.jar; CREATE TEMPORARY FUNCTION mask AS 'com.yourpackage.MaskingUDF'; ``` 4. **使用UDF**: 注册完成后,你可以在查询中直接使用`mask`函数。假设我们有一个包含手机号码的表`...
在"dataiku-hive-udf-master"这个压缩包中,我们可以期待找到各种不同类型的Hive UDF示例源代码。这可能包括了各种实用的函数,如日期处理、数据转换、复杂逻辑判断等。开发者可以通过这些源码学习如何编写自己的...
Hive 自定义 UDF 编写函数 本文主要讲解了 Hive 中自定义 UDF 函数的编写方法,包括创建 UDF 类、实现自定义函数逻辑...本文详细介绍了 Hive 中自定义 UDF 函数的编写和使用方法,为开发者提供了一个详细的参考指南。
sql笔试题示例 Hive UDF 项目 介绍 该项目只是一个示例,包含多个 (UDF),用于 Apache Spark。 它旨在演示如何在 Scala 或 Java 中构建 Hive UDF 并在 . 为什么要使用 Hive UDF? Hive UDF 的一个特别好的用途是与 ...
学习和使用这些Java编写的Facebook Hive UDF,不仅可以提升对Facebook数据的处理能力,也能深入理解大数据处理的实践,对于Java开发者和数据分析师来说都是宝贵的经验。同时,这种定制化开发的经验也可以应用到其他...
三、Hive UDF使用示例 例如,我们想实现一个UDF,用于计算两个日期之间的天数差: ```java public class DateDiff extends UDF { public Integer evaluate(Date date1, Date date2) { if (date1 == null || date...
我们将涵盖正则表达式在手机号码清洗中的应用,以及如何编写和使用Java UDF在Hive和Impala中实现这个过程。 1. **手机号码格式问题**:手机号码可能因历史记录、输入错误或不同的国家/地区标准而呈现多种格式。例如...
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...
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)以及利用 Sqoop 进行数据导入导出的详细资料。 首先,让我们深入理解 Hive UDF。Hive 支持多种...
HiveUDF 此Hive UDF示例代码包含2个函数:MyUpper()和MyContains() 它们在Hive 0.12、0.13和1.0中进行了测试。 要使Hive UDF在Drill中工作,请关注以下博客:一种。 如何制作罐子mvn package ## b。 准备一个带...
文件名称“addmonth”很可能对应的是实现月份加法的UDF,或者是一个包含此类UDF的示例代码或测试数据。 总的来说,Hive时间按月份加减UDF是提高Hive对日期处理能力的一种有效方式,它使得用户能够更灵活地处理时间...
标题"hive按月份加减udf范例"意味着我们将探讨如何在Hive中创建和使用UDF来对日期进行月份级别的加减操作。通常,Hive的标准日期函数可能无法满足这种特定需求,因此我们需要自定义函数来完成这个任务。 描述中的...
在大数据处理领域,Hive 是一个非常重要的工具,它提供了SQL-like 的接口来查询和管理大规模数据集。而用户定义函数(User Defined ...理解如何使用和开发 Hive UDF,对于提升大数据分析的效率和质量至关重要。
下面是一个简单的自定义UDF示例,用于格式化时间戳为指定日期格式: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.hadoop.hive.ql....
本示例“hive自定义函数demo”将探讨如何在Hive中开发和使用自定义函数(UDF),这对于扩展Hive的功能和适应特定业务需求至关重要。下面,我们将深入学习与Hive自定义函数相关的知识。 1. **什么是Hive UDF?** ...