`

hive 创建自定义函数 和 hive加载说明

    博客分类:
  • hive
 
阅读更多

 

0 hive udf作用都限于对字段进行简单处理,

  udf定义好后被应用一般有三种方式:

  a) hiverc文件中
  b) hql文件中写加载 
  c) hive/scrpits/ 根据文件名从小到大顺序来优先加载文件夹下的文件 

     据说这是工作中经常用到的 但是这是我工作中基本没用到过的。

 

1 模拟oracl函数 instr(xiangmu, '已注册(') 的效果

 

2 java代码:

 

package hiveudf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;


public class instrfun  extends UDF{ // 

	 public IntWritable evaluate(Text source, Text part) {
	   String sourceStr = source.toString();
	   String partStr = part.toString();
	   int indexPart = sourceStr.indexOf(partStr); // java出现次数以0为基础
	   indexPart++;
	   
	   return new IntWritable(indexPart);
	 }
}

 

 

 

3 将这个javabean打包 为hive-udf.jar ,上次到Linux服务器上

     或者可以放在 hive/lib下 这样看着更正式点,这样的话 第4步add jar就需要修改成 hive/lib的路径

 

4 hive表注册和使用此函数: 在hive命令行下,执行如下语句

add jar /home/new_load_data/lib/hive-udf.jar; 
create temporary function instrfun as 'hiveudf.instrfun'; 

 5 hive环境中使用写法:

 

select instrfun(xiangmu,'已注册(') from f_trademark_tmp_hdfs_ext_20150717 limit 4;  

 

 

参考链接:

http://blog.csdn.net/zythy/article/details/18818559

 

 对应工程jar请看附件

 

加载说明:

   如果你是在修改了 .hiverc后 重新启动了hive客户端 hive>内来执行自定义函数的话,那么能够执行

  因为此时hive客户端重新读到了 hiverc的文件

 

  如果你是想通过 脚本来执行,比如你的自定义函数写在 xx.sql 通过

  hive -t -S -h 192.168.20.200 -f /user/aaa.sql  方式,那么此时走的是hive server端,

  需要重启hive后才能正确执行。

 

  工作中 一般都是通过方式 b)来加载hive自定义函数,方便灵活,更不需要重启hive。

分享到:
评论

相关推荐

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

    ### Spark与Hive自定义函数兼容性问题解析 在大数据处理领域,Apache Spark 和 Apache Hive 都是非常重要的工具。Spark 是一种快速通用的大规模数据处理系统,而Hive 则是一种数据仓库工具,主要用于对存储在 ...

    hive数仓、hive SQL 、 hive自定义函数 、hive参数深入浅出

    3. Hive自定义函数(UDF): - UDF定义:用户可以编写Java代码实现特定功能的函数,然后在Hive SQL中调用。 - UDAF(用户定义的聚合函数):用于处理一组输入值并返回单个值,如自定义平均值、众数等。 - UDTF...

    hive UDF需要jar包

    在Hive中,UDF(User Defined Functions)是用户自定义函数,允许开发人员扩展Hive的内置功能,以满足特定的数据处理需求。Hive UDF的实现通常涉及到编写Java代码,并将其打包成JAR(Java Archive)文件,然后在Hive...

    Hive自定义函数

    【Hive自定义函数】是Hive为了满足用户在处理大数据时遇到的特定业务需求而提供的功能。在Hive的内置函数无法满足这些需求时,用户可以通过编写自定义函数(UDF)进行扩展。UDF全称为User Defined Function,允许...

    base64加密解密的hive udf函数

    本文将详细探讨如何在Hive中自定义User Defined Function(UDF)来实现Base64的加密和解密。 首先,我们需要了解Base64的基本原理。Base64是一种将任意二进制数据转化为ASCII字符集的方法,它通过将每3个字节转换为...

    hive函数大全.7z

    5. **高级特性**:可能会涉及UDF(用户定义函数)、UDAF(用户定义聚合函数)和UDTF(用户定义表生成函数)的开发和使用,这些允许用户自定义函数来扩展Hive的功能。 6. **性能优化**:如何通过分区、桶、缓存等...

    hive语法和常用函数.doc

    Hive的优点包括高延迟、批处理的特性,良好的扩展性(可以自适应机器和数据量的动态变化),高延展性(自定义函数),良好的容错性,低约束的数据输入格式。Hive能很好地处理在不变的超大数据集上的批量的分析处理...

    hive语法和常用函数[归纳].pdf

    Hive是基于Hadoop平台的,故有很好的扩展性(可以自适应机器和数据量的动态变化),高延展性(自定义函数),良好的容错性,低约束的数据输入格式。 Hive的架构和执行流程: 用户提交的Hive QL语句最终被编译为...

    Hive UDF开发

    此时,就需要通过自定义函数(User Defined Function, UDF)来扩展Hive的能力。 #### 二、Hive UDF简介 Hive UDF是指用户可以根据自己的业务需求,自定义Java类来实现特定的数据处理逻辑,并将其封装成函数的形式供...

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

    3. **Hive UDF**:在Hive中,我们可以创建自定义函数(UDF)来处理特定的数据清洗任务。首先,你需要编写一个Java类,该类继承自`org.apache.hadoop.hive.ql.udf.generic.GenericUDF`,并实现`evaluate`方法,该方法...

    HIVE相关的jar包

    开发者通常需要这些jar包来创建自定义的Hive UDF(用户自定义函数)或UDAF(用户自定义聚合函数)以扩展Hive的功能。这些jar包也用于在MapReduce、Tez或Spark等计算框架上运行Hive查询。 在Hive的不同版本之间,jar...

    hive时间按月份加减UDF

    这就是Hive时间按月份加减UDF(用户自定义函数)的作用。 在Hive中,内置的时间函数可以满足大部分日常需求,如获取年份、月份、日期等,但并不直接支持按月份加减。为了实现这样的功能,我们可以自定义UDF(User ...

    hive按月份加减udf范例

    在Hive中,UDF(User Defined Function)是用户自定义函数,允许我们扩展Hive的功能以满足特定的业务需求。本示例主要讲解如何在Hive中实现按月份的加减操作,这在时间序列分析或周期性报告中非常常见。 标题"hive...

    hive函数.docx

    Hive还支持用户自定义函数(UDF)、自定义聚合函数(UDAF)和自定义表生成函数(UDTF)。这些函数允许用户根据需求实现更为复杂的逻辑。 #### 5.1 UDF开发 UDF(User-Defined Function)是用户定义的函数,用于...

    HIVE创建库创建表.docx

    总的来说,这个实验覆盖了Hive操作的关键知识点,通过实际操作加深了对HQL的理解,包括数据库创建、表类型、分区和数据加载等核心概念。这些技能对于处理大规模数据存储和分析至关重要,是大数据工程师日常工作中必...

    Apache-Hive-Cookbook

    5. **Hive UDF(用户自定义函数)**:介绍如何创建和使用自定义函数,包括UDF(用户自定义标量函数)、UDAF(用户自定义聚合函数)和UDTF(用户自定义表生成函数),以扩展Hive的功能。 6. **MapReduce与Tez执行...

    hive,json格式传送,加载数据

    标题和描述提及的“hive,json格式传送,加载数据”主要涉及到以下几个关键知识点: 1. **Hive 对 JSON 数据的支持**:Hive 默认并不直接支持 JSON 数据格式,但通过第三方库如 Hive-JSON-Serde 和 Hive-JSON-UDF,...

    kafaka+hive.rar

    可以编写自定义的Hive UDF(用户自定义函数)或者使用Spark等工具来实现这个过程。 5. **查询和分析**: 一旦数据被加载到Hive,用户就可以通过HQL进行复杂的查询和分析。 6. **优化性能**: 可以通过Hive的分区策略...

    Hive_UDF.rar_hive_sqoop

    总之,“Hive_UDF.rar_hive_sqoop”压缩包提供了关于如何利用 Hive 自定义函数增强数据分析能力,以及如何借助 Sqoop 实现数据在 RDBMS 和 Hadoop 生态系统之间的流动的详细信息。这些工具的结合使用,为大数据处理...

Global site tag (gtag.js) - Google Analytics