【hadoop】第一个UDF小例子 此博文包含图片 (2013-09-23 19:19:13)

之前做过一个例子,但是有问题,中间因为其他事情给耽搁了,就忘记了,今天帮同事查数据,要写一个UDF,又发现了同一个问题,最终解决了。下边整理一下我的小例子,由于hive表中存放的时间是Long型的字符串,需要将其转化成时间:

1、首先创建一个java项目,根据需要命名。

2、导入hive需要的jar包:

3、在项目中创建一个类,extends UDF:
package cn.hive.udf;

import java.sql.Date;
import java.text.SimpleDateFormat;
import org.apache.hadoop.hive.ql.exec.UDF;

public class TimeFormat extends UDF {
 public String evaluate(String num){
  Date d=new Date(Long.decode(num));
  SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");
  return sdf.format(d) ;
 }
}

这里要注意的是方法的名称一定要定义成evaluate。

4、导出jar包:

选中TimeFormat类文件,右击export,选择jar file:

5、将jar包上传到服务器

6、准备数据,time为Long型数字的string类型的数据文件:
7、将jar加入到hive中:

hive> add jar /home/HelloUD.jar;

8、创建一个临时函数,指向上边编译的类

hive > create temporary function formatTime as ‘cn.hive.udf.TimeFormat‘;

10、可以调用这个函数了:

hive> select formatTime(time) from s_show;

11、调用完这个函数可以删掉

hive> drop temporary function formatTime ;

时间: 2024-08-04 00:02:17

【hadoop】第一个UDF小例子 此博文包含图片 (2013-09-23 19:19:13)的相关文章

Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARN Please initialize the log4j system properly.log4j:WARN See

nodeJS+bootstarp+mongodb整一个TODO小例子

又是一个简单的小玩意儿, 不过有个大玩意儿,就是nosql的mongodb(文件大小:130M),  你要下载一个mongdodb, 去官方网站下载 安装以后在mongodb的命令行目录下执行 mongod --dbpath=c:\mongodbInfo\ --port 27017 这个命令会在C盘新建一个叫做mongodInfo的目录用来保存mongodb的数据; nodeJS要安装mongodb的依赖库, 通过npm进行安装 npm install mongodb mongodb的API可以

webpack简单教程(1)--从零开始搭建一个webpack小例子

基于Windows操作系统下搭建webpack的运行环境,这里采用npm环境,node.js官网下载最新版本的, 这里忽略下载和安装,然后直接运行  Node 环境,如下图所示. 检查一下,node版本和npm工具的版本确保是最新的,这里并不是最新版本的, 如果版本都是最新的,那么就可以来直接搭建webpack一个小demo案例. 1.在F盘中创建一个文件夹webpack 2.在文件夹中创建index.html <!DOCTYPE html> <html lang="en&qu

关于ExpandableListView用法的一个简单小例子

喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到android的ExpandableListView,今天研究了一下这个的用法,也参考了很多资料动手写了一个小demo,实现了基本的功能,但界面优化方面做得还不够好,有待改进,素材采用了Q版三国杀武将的图片,很有爱哈哈,下面直接上效果图以及源代码~!                     main.x

第一个servlet小例子

1.sendForward.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose

使用正则做的一个爬虫小例子

from urllib.request import urlopen import re """ 爬虫,爬一个豆瓣网,把爬出来的存储到一个文件 """ def get_request(url): """ 把网址变为源码,因为计算机只能读懂源码,然后吧源码变为utf-8的格式 :param url: :return: """ ret = urlopen(url) return ret.re

证件照(1寸2寸)拍摄处理知识汇总 此博文包含图片

一.电子版照片要求: 1.近期免冠照片,照片清晰,完整,背景红色.蓝色均可. 2.照片为jpg格式:大小为15KB—35KB之间:图片的尺寸为宽150像素,高210像素. 3.照片必须由数码相机拍摄,相机像素不得少于400万. 4.头像大小及位置:人像在相片矩形框内水平居中,头顶发迹距相片顶部占照片高度的2/10,照片下边缘以刚露出锁骨或者衬衣领尖为准.  双耳要露出,平时带眼睛的需要带上眼睛拍照. 5.着装要求:服装不要与背景色相近,建议穿深色衣服:男士(西服+衬衫+领带):女士(西服+衬衣)

弹性盒模型此博文包含图片

Css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间.这与XUL(火狐使用的用户交互语言)相似,其它语言也使用相同的盒模型,如XAML .GladeXML. 使用该模型,可以很轻松的创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局.本文的例子使用以下的HTML代码: 1 2 3 传统的盒模型基于HTML流在垂直方向上排列盒子.使用弹性盒模型可以规定特定的顺序,也可以反转之.要开启弹性盒模型,只需设置拥有子盒子的盒子的display的属性值

css盒子此博文包含图片

内容(CONTENT)就是盒子里装的东西: 而填充(PADDING)就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料: 边框(BORDER)就是盒子本身了:至于边界(MARGIN)则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出.在网页设计上,内容常指文字.图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损