hive udf 使用示例

本文介绍了一种在Hive中使用自定义UDF进行动态分区的方法,并提供了具体实现代码及所需依赖的jar包清单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在使用过程中,在执行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') 
 

 

 

MotoSim EG-VRC安川机器人(Yaskawa)自有的虚拟仿真离线编程软件。它可以用于创建仿真项目、添加机器人系统、进行机器人的手动运行操作等。\[1\]要打开MotoSim EG-VRC软件,可以点击菜单栏中的“MotoSim EG-VRC”按钮,然后选择“New”→“New”,在弹出的对话框中选择保存项目的文件目录并输入文件名称,最后点击Open按钮即可创建一个新的仿真项目。\[2\]在上一期中,我们还介绍了如何安装机器人工具创建机器人简易工装以及将工件安装到工装上。\[3\] #### 引用[.reference_title] - *1* *2* [MotoSim EG-VRC软件安川机器人仿真项目基础操作](https://blog.youkuaiyun.com/WHX1083575213/article/details/100049694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MotoSim EG-VRC软件机器人工具添加工装工件创建过程](https://blog.youkuaiyun.com/WHX1083575213/article/details/100800130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值