045 介绍UDF,以及完成大小写的转换
一:概述
1.UDF
用户自定义函数,用java实现自定义的需求
User Defined Function-----UDF。
2.UDF的类型
udf:一进一出
udaf:多进一出
udtf:一进多出
3.udf的实现步骤
继承UDF类
实现evaluate的方法
所有的方法都必须有返回值
推荐使用Text,LongWritable等类型
二:配置准备
1.导入新的包括hive的jar包
需要新的本地repository库。
然后在eclipse中选择更新。
在windows下新建maven工程。
2.修改pom.xml中的依赖,
主要是增加hive的依赖,当然hadoop依赖必须有。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.cj.it</groupId>
<artifactId>hiveUdf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>hiveUdf</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.13.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
三:程序完成
1.需求
大小写的转换
0:表示转换为小写
1:表示转换为大写
默认是转换为小写
2.程序讲解
3.源代码
package com.cj.it.hiveUdf; import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text; public class UdfTest extends UDF {
public Text evaluate(Text str) {
return evaluate(str, new IntWritable(0));
} public Text evaluate(Text str, IntWritable flag) {
if (str != null) {
if (flag.get() == 0) {
return new Text(str.toString().toLowerCase());
}
if (flag.get() == 1) {
return new Text(str.toString().toUpperCase());
}
return null;
}
return null;
} public static void main(String[] args) {
System.out.println(new UdfTest().evaluate(new Text("asssf"), new IntWritable(1)));
}
}
4.运行效果
四:导出
1.Export
2.jar
五:上传到hive
1.先上传到datas目录下
2.启动hadoop
3.启动hive
4.关联jarbao
5.创建方法
6.使用
045 介绍UDF,以及完成大小写的转换的更多相关文章
- 介绍UDF,以及完成大小写的转换
一:概述 1.UDF 用户自定义函数,用java实现自定义的需求 2.UDF的类型 udf:一进一出 udaf:多进一出 udtf:一进多出 3.udf的实现步骤 继承UDF类 实现evaluate的 ...
- R语言大小写字母转换
#R语言大小写字母转换 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz R语言有很丰富的 ...
- js字母大小写字母转换
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- c# 字符串大小写混合转换
我是个.net萌新,在大学是计算机应用专业 学的比较杂 出来准备走net方向 培训了两个月了 今天被出了一道上机题 题本来是挺简单的 输入一个字符 如果是大写则转换为小写 如果是小写则转换为大 ...
- java---金额中文大小写实时转换小程序
本例演示一个String图形用户界面的完整应用程序,包括输入数据, 显示结果,响应事件以及异常处理. 输入一个实数表示金额,每次输入时显示该金额的中文大小写形式,运行窗口见最后. 在窗口中," ...
- c语言字符串大小写字母转换
输入一个以#结束的字符串,本题要求将小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其它字符不变. 输入格式: 输入在一行中给出一个长度不超过40的.以#结束的非空字符串. 输出格式: 在一 ...
- JS大小写字母转换
var a = "ABCd"; console.log(a.toLowerCase());//转换成小写 console.log(a.toUpperCase());//转换成大写
- C语言 大小写字母转换
//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 方法1: #include<stdio.h> #include<stdlib.h> ...
- 前端的字符串时间如何自动转换为后端Java的Date属性,介绍springMVC中如何解决时间转换问题
平常在开发过程中,前端选择时间一般都要使用时间选择插件,但是这种插件选出来的时间都是字符串类型,我们该怎么转换为后端的Date呢?/? 前端效果如下(笔者用的是layDate5.0插件): 修改前的后 ...
随机推荐
- js设置div透明度
原生js设置透明度 为了兼容IE与其他浏览器对透明度的设置,我们需要对以上两种样式分别进行设置: 复制代码代码如下: var alpha = 30; //透明度值变量 var oDiv = docum ...
- luogu P2123 皇后游戏
传送门 跟国王游戏一样的分析 考虑相邻的两个大臣,设他们前面的\(\sum a_j\)为\(s\),同时注意到后面人的贡献更大 所以\(i\)在前面时,\(c_j=\max(\max(c_{last} ...
- Gitlab8.5安装后邮件发送不成功的解决过程
Gitlab安装成功有,注册邮件一直接收不到也是很生气,修改了 /etc/gitlab/gitlab.rb文件 gitlab_rails['smtp_enable'] = truegitlab_rai ...
- spfa算法----最短路
题目链接:https://cn.vjudge.net/contest/66569#problem/A 代码: vis数组代表是否还有用,首先初始化为0,首先第一个点入队列,标记为1,然后刚入队列的时候 ...
- case7 淋巴瘤子类分类实验记录
case7 淋巴瘤子类分类实验记录 简介 分类问题:3分类 (identifying three sub-types of lymphoma: Chronic Lymphocytic Leukemia ...
- Maven私服
1.关于中央仓库注意事项地址: 目前来说: http://repo1.maven.org/maven2/是真正的 Maven 中央仓库的地址,该地址内置在Maven 的源码中,其他的都是镜像.索引: ...
- pt-online-schema-change VS oak-online-alter-table
前言 在上篇文章中提到了MySQL 5.6 Online DDL,如果是MySQL 5.5的版本在DDL方面是要付出代价的,虽然已经有了Fast index Creation,但是在添加字段还是会锁表 ...
- jQuery 实现添加表格行,删除行,调用日期控件
$(function () { getdatepicker(); getdatetimepicker(); }); $(document).on('click','#addTable',addTr); ...
- 配置本地无密码 SSH登录远程服务器
下面这幅图简单来说就是你本地有一把钥匙,服务器也有一把钥匙,当登录的时候本地的钥匙与服务器的进行对比,通过算法的判定,监测是否具有权限的用户 第一步,在本地配置这把钥匙生成私钥与公钥: 打开.ssh目 ...
- LeetCode(27): 移除元素
Easy! 题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1 ...