一.UDFS函数介绍

1. 基本UDF

(1)SHOWFUNCTIONS:这个用来熟悉未知函数。

DESCRIBE FUNCTION<function_name>;

(2)A IS NULL

A IS NOT NULL

(3)A LIKE B 普通sql匹配如 like “a%”

A RLIKE B通过正则表达式匹配

A REGEXP B 通过正则表达式匹配

(4)round(double a):四舍五入

(5)rand(),rand(int seed):返回在(0,1)平均分布的随机数

(6)COALESCE(pv, 0):将 pv 为 null 的行转为0,很实用

2. 日期函数

(1)datediff(string enddate, stringstartdate):

返回enddate和startdate的天数的差,例如datediff('2009-03-01','2009-02-27') = 2

(2)date_add(stringstartdate, int days):

加days天数到startdate:date_add('2008-12-31', 1) ='2009-01-01'

(3)date_sub(stringstartdate, int days):

减days天数到startdate:date_sub('2008-12-31', 1) ='2008-12-30'

(4)date_format(date,date_pattern)

CREATETEMPORARY FUNCTION date_format AS'com.taobao.hive.udf.UDFDateFormat';

根据格式串format 格式化日期和时间值date,返回结果串。

date_format('2010-10-10','yyyy-MM-dd','yyyyMMdd')

(5)str_to_date(str,format)

将字符串转化为日期函数

3. 字符串函数

(1)length(stringA):返回字符串长度

(2)concat(stringA, string B...):

合并字符串,例如concat('foo','bar')='foobar'。注意这一函数可以接受任意个数的参数

(3)substr(stringA, int start) substring(string A,int start):

返回子串,例如substr('foobar',4)='bar'

(4)substring(string A, int start,int len):

返回限定长度的子串,例如substr('foobar',4, 1)='b'

(5)split(stringstr, string pat):

返回使用pat作为正则表达式分割str字符串的列表。例如,split('foobar','o')[2] = 'bar'。

(6)getkeyvalue(str,param):

从字符串中获得指定 key 的 value 值 UDFKeyValue

4. 自定义函数

(1)row_number

    create temporary function row_number as 'function_name';

    select ip,uid,row_number(ip,uid) from (

    select ip,uid,logtime from atpanel

    distribute by ip,uid

    sort by ip,uid,logtime desc) a

(2)拆分key_value键值对

  CREATE TEMPORARY FUNCTION ExplodeEX AS 'com.taobao.hive.udtf.UDTFExplodeEX';

  select

  split(kvs,'_')[0] as key,

  split(kvs,'_')[1] as key,

  from ( select 'a-1|b-2' as kv from dual ) t

  lateral view explode (split(kv,'\\|')) result as kvs

Hive入门之UDFS函数的更多相关文章

  1. 第1章 Hive入门

    第1章 Hive入门 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提 ...

  2. Hive Tutorial(上)(Hive 入门指导)

    用户指导 Hive 指导 Hive指导 概念 Hive是什么 Hive不是什么 获得和开始 数据单元 类型系统 内置操作符和方法 语言性能 用法和例子(在<下>里面) 概念 Hive是什么 ...

  3. hive 调用java的函数和科学记数法转换

    hive中field如果是string,比如id,那么使用10000000000+id结果是科学计数法显示,转换为正常显示方法: select (10000000000+cast(id as int) ...

  4. 4 weekend110的hive入门

    查看企业公认的最新稳定版本:       https://archive.apache.org/dist/  Hive和HBase都很重要,当然啦,各自也有自己的替代品. 在公司里,SQL有局限,大部 ...

  5. hadoop笔记之Hive入门(Hive的体系结构)

    Hive入门(二) Hive入门(二) Hive的体系结构 ○ Hive的元数据 Hive将元数据存储在数据库中(metastore),支持mysql.derby.oracle等数据库,Hive默认是 ...

  6. hadoop笔记之Hive入门(什么是Hive)

    Hive入门(一) Hive入门(一) 什么是Hive? Hive是个数据仓库,数据仓库就是数据库,但又与一般意义上的数据库有点区别 实际上,Hive是构建在hadoop HDFS上的一个数据仓库. ...

  7. [Hive_11] Hive 的高级聚合函数

    0. 说明 Hive 的高级聚合函数 union all | grouping sets | cube | rollup pv //page view 页面访问量 uv //user view 访问人 ...

  8. [Hive_6] Hive 的内置函数应用

    0. 说明 Hive 的内置函数的基本操作 | 时间函数 | String 函数 | 条件语句 | explode | split | substring 1. 基本操作 查看函数 show func ...

  9. Hive入门学习随笔(一)

    Hive入门学习随笔(一) ===什么是Hive? 它可以来保存我们的数据,Hive的数据仓库与传统意义上的数据仓库还有区别. Hive跟传统方式是不一样的,Hive是建立在Hadoop HDFS基础 ...

随机推荐

  1. C-Free 您不能使用调试解决方案

    什么时候C-Free 当您调试 找不到gdb.exe解决方案 http://www.programarts.com/ C-Free 官方网站 下载Mingw或者其他编译器 版权声明:本文博主原创文章. ...

  2. Python学习笔记(十五):类基础

    以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-24 23:59 学习笔记 1,Python中的大多 ...

  3. Sql Server数据库--》事务

    事务:更多的是一种处理机制(同生共死) 事务是对增删改而言的(因为她们会改变数据) 事务是对多条语句而言,多个sql语句组成,整体执行 事务的4个特点叫做ACID:分别为: 1,A:原子性->事 ...

  4. Openlayers 自定义控件

    OpenLayers.Control.YourControl = OpenLayers.Class(OpenLayers.Control, { // may private properties he ...

  5. QT正则表达式

    QT正则表达式有一个问题,当初始状态是不符合正则表达式时,能够输入任意字符,若在输入过程中符合正则表达式,马上进入字符检测状态,即只能接受符合正则表达式的字符.

  6. JavaWeb核心编程之(三.4)Servlet Context 配置

    ServletContextServlet引擎为每个Web应用程序都创建一个对应的ServletContext对象, ServletContext对象被包含在ServletConfig对象中, 调用S ...

  7. MAC上使用maven打android的包,报错:No Android SDK path could be found. 解决办法

    对android工程运行mvn compile出现如下信息: No Android SDK path could be found. You may configure it in the pom u ...

  8. 监听enter事件

    document.onkeydown=keyDownSearch; function keyDownSearch(e) { // 兼容FF和IE和Opera var theEvent = e || w ...

  9. droppable的详细参数讲解

    jQuery-Draggable参数介绍     默认设置值: $.extend($.ui.draggable, { version: “1.7.1″, eventPrefix: “drag”, de ...

  10. Iso language code table之(软件国际化)

    ISO 639是用来区分所有已知的语言规范的术语.每种语言都分配两个字母(639-1)或三个英文字母(639-2和639-3),小写字母的缩写,修订后的版本命名的.该系统是非常有用的语言学家和人类学家 ...