Hive自定义函数(字母大小写转换)
自定义Hive的函数,首先需要继承UDF类,然后定义方法名字为evaluate的方法,该方法不能设置void,如果需要返回为空,可以返回为null.
一个简单的大小写转换案例
特别注意看注释
package com.madman.hive.function;import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;/*** 注释很重要。。* 看注释。* 看注释* 看英文注释。。。。。。。。。* */
/*** A User-defined function (UDF) for the use with Hive.** New UDF classes need to inherit from this UDF class.** Required for all UDF classes: 1. Implement one or more methods named* "evaluate" which will be called by Hive. The following are some examples:* public int evaluate(); public int evaluate(int a); public double evaluate(int* a, double b); public String evaluate(String a, int b, String c);** "evaluate" should never be a void method. However it can return "null" if* needed.*//*** 需求:转换大小写,0代表小写,1代表大写,默认转换小写* * @author ibf**/
public class HiveFunction extends UDF {public Text evaluate(Text str) {return this.evaluate(str, new IntWritable(0));}public Text evaluate(Text str, IntWritable flag) {// 如果不等于null,就进行转换大小写的操作,说明数据合法if (str != null) {// 如果等于0,表示转换小写if (flag.get() == 0) {return new Text(str.toString().toLowerCase());// 如果等于1,表示转换大写} else if (flag.get() == 1) {return new Text(str.toString().toUpperCase());} elsereturn null;} elsereturn null;}public static void main(String[] args) {System.out.println(new HiveFunction().evaluate(new Text("Hadoop"), new IntWritable(0)));}}
大概步骤
继承UDF类,import org.apache.hadoop.hive.ql.exec.UDF;
写完程序,打jar包(指定main类)上传到Linux系统中与jar包进行关联
add jar /opt/moduels/alldata/udf.jar;
创建function函数方法 create temporary function my_udf as 'com.madman.hive.function.HiveFunction';后面这个就是你的类路劲
测试:执行将emp表中的ename全部转换成小写
select ename,my_udf(ename) low_ename from emp;
Hive自定义函数(字母大小写转换)相关推荐
- SQL 字母大小写转换函数UPPER()、UCASE()、LOWER()和LCASE()
1.SQL UPPER()函数 SQL upper()函数字母大小写转换函数,将字母转成大写 - 返回字符串str,根据当前字符集映射的所有字符更改为大写. SQL> SELECT UPPER( ...
- php 清除英文字母,PHP英文字母大小写转换函数小结
PHP英文字母大小写转换函数小结 发布于 2015-01-23 10:54:41 | 143 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...
- php 英文小写变大写,PHP英文字母大小写转换函数
例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo); // He ...
- php 英文小写变大写,PHP_PHP英文字母大小写转换函数小结,每个单词的首字母转换为大写 - phpStudy...
PHP英文字母大小写转换函数小结 每个单词的首字母转换为大写:ucwords() $foo = 'hello world!'; $foo = ucwords($foo); // ...
- 2021年大数据Hive(八):Hive自定义函数
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...
- c语言中字母大写转小写,C语言中字母大小写转换的简单操作
大写字母要转换小写字母,要怎么操作呢?而在C语言开发中,我们经常会遇到这样或者那样的问题,别着急,爱站技术频道为你细细道来C语言中字母大小写转换的简单操作. C语言tolower()函数:将大写字母转 ...
- 7-4 字符串字母大小写转换 (15 分)
7-4 字符串字母大小写转换 (15 分) 本题要求编写程序,对一个以"#"结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出. 输入格式 ...
- android 字符串数组去重,GitHub - deng-ming-hao/ec-do: 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等。...
ec-do 自己封装的常用操作实例 实例为日常开发常用的小实例,包括数组去重,打乱数组,字母大小写转换,cookie操作的封装等. 使用方法 引入ec-do.js //去除空格 ecDo.trim(' ...
- PTA:Python字符串字母大小写转换
第3章-14 字符串字母大小写转换 (15分) 本题要求编写程序,对一个以"#"结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出. 输入 ...
- c语言中字母大小写转换的两种办法
起因: 牛客网一道题,需要按行输入多组字母,然后按行输出其转换大小写后的字母,我们来探讨一下. 分析: 有两个要点需要注意,一是要按行多组输入,二是要字母大小写转换.首先是按行多组输入,我们可以用wh ...
最新文章
- jquery ajaxSubmit
- [luogu 2324][SCOI 2005] 骑士精神 (A*算法)
- java 常量池 和 堆 的关系_Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)...
- C# 的扩展方法在 LINQ 中实现数组排序
- IAR下μCosIII移植心得
- 国内git clone报错问题解决办法
- Android第三方开源水面波浪波形view:WaveView(电量、能量、容量指示)
- XMLDictionary 解析的使用
- BZOJ P1059 [ZJOI2007]矩阵游戏——solution
- 最安全的php加密,安全性 - 使用PHP进行最简单的双向加密
- 老人机java游戏模拟器_KEmulator(JAVA手机游戏模拟器)
- 常用c语言代码大全,C语言的一些常用代码
- IBM的量子云计算准备开始商用 我国此前已实现量子加密产品商用
- 现代优化算法 之 模拟退火
- 如何在微信公众号优雅地添加代码
- oracle 体系架构图
- keras求两向量间的余弦值
- Python OpenCV真香——去除照片白色背景
- jq实现checkbox全选中以及获得选中的checkbox的值
- 1.7 使用不同设备类型的iOS模拟器 [原创iOS开发-Xcode教程]