一、内置函数

  1.一般常用函数  

1.取整函数
round() 当传入第二个参数则为精度
bround() 银行家舍入法:为5时,前一位为偶则舍,奇则进。
2.向下取整
floor()
3.向上取整
ceil/ceiling()
4.生成随机数
rand () 范围[0,1),传入种子时生成稳定随机数
5.自然指数函数
exp () e的n次方
log10 () 10为底的对数函数
ln() e为底的对数函数
log(base,v)base为底的函数
6.幂函数
pow/power (base,exponent)
7.根函数
aqrt() 开平发
cbrt() 开立方
8.绝对值函数
abs()
9.进制转换
bin() 转二进制
hex() 转十六进制
unhex() 反转十六进制
conv(v,from,to) 进制转换函数
10时间函数
unix_timestamp() 获取时间
from_unixtime(ut,formats) ut转为日期字符串
unix_timestamp(timestr,fs) 日期转化ut
to_data(timestr) 返回日期部分
year(timestr) 返回指定部分,其他类似
datediff(endDate,startD) 日期比较函数(返回日期之间的天数)
date_add(startDate,days) 日期增加,返回当前日期计算后的日期字符串
date_sub(startDate,days) 日期减少

  2.字符串常用函数

1.取长度
length()
2.反转
reverse()
3.字符串连接函数
concat(strS) 无分隔符连接
concat_ws(separator,strS) 分隔符连接
4.字符串截取
substr/substring(str,index) 为正截取至此,为负截取后index个
~~~~(str,index,length) 从index截取length个字符,正左负右
5.大小写转换
upper/ucase ()
lower/lcase ()
6.去空格函数
trim() 两边去空格
ltrim() 左边去空格
rtrim() 右边去空格
7.正则表达式
regexp_replace(str,rge,replace) 替换字符串
regexp_extract(str,reg,index) 查找匹配字符,0返回全部,1返回第一个括号里的
8.URL解析函数
parse_url (str,’{extractPart}’[,’{extractKey}’])
选项有:[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]
select parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') from dual;---facebook.com​
9.json函数
get_json_object(jsonstr,'$.name')
10.字符串生成和补足函数
space(n) 空字符串
repeat(str,n) 重复字符串
lpad(str,legth,addstr) 左补足
split(str,splitstr) 字符串分割

二、自定义函数

自定义函数加载步骤 -> 只对当前会话有效
(1)新建项目 - JavaProject
(2)将hive-exec-1.2.2.jar添加至构建路径中
(3)新建包 -> 新建类(继承UDF)
(4)新建方法evaluate -> 指定返回值类型和参数列表
(5)导出项目 -> jar包(只需要包含src下的内容)
(6)上传jar包至Linux系统
(7)打开Hive会话
(8)加载jar包:add jar /home/bigdata/udf.jar; -> 将jar包添加至构建路径(类的搜索加载路径)
(9)将jar包中的类进行函数的命名
create temporary function sub as 'com.sand.udf.SubString';
(10)show functions; -> 验证是否添加成功

三、创建虚表

为了方便测试,可仿照oracle创建dual表
1.新建一个dual表
create table dual(dummy string);
2.创建仅包含X的文件
echo X >/home/hadoop/dual.txt
3.上传数据
load data local inpath '/home/hadoop/dual.txt' overwrite into table dual;
4.测试
select 1+1 from dual ; 返回2则成功

hive的内置函数和自定义函数的更多相关文章

  1. Hive学内置条件和字符串函数

    https://blog.csdn.net/skywalker_only/article/details/38752003 条件函数 下表为Hive支持的一些条件函数. 返回类型 函数名 描述 T i ...

  2. Hive内置函数和自定义函数的使用

    一.内置函数的使用 查看当前hive版本支持的所有内置函数 show function; 查看某个函数的使用方法及作用,比如查看upper函数 desc function upper; 查看upper ...

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

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

  4. Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)

    Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器) 1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数

  5. Python内置的字符串处理函数整理

    Python内置的字符串处理函数整理 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-29我要评论 Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 ...

  6. PHP内置的字符串处理函数

    字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...

  7. thinkPHP内置字符串截取msubstr函数用法详解

    作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...

  8. python内置常用高阶函数(列出了5个常用的)

    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...

  9. jquery (内置遍历数组的函数,事件)

    内置遍历数组的函数: 1. $.map(array, function() { }); 取到数组或者对象array中每一项进行遍历  然后在function中处理: var attr = [1,2,3 ...

  10. MySQL之运算符与函数、自定义函数

    一自定义函数简介 (1)自定义函数定义 用户自定义函数(user-defined function,UDF)是一种对MySQL数据库扩展的途径,其用法与内置函数相同. (2)自定义函数的两个必要条件 ...

随机推荐

  1. 《Android应用测试与调试实战》读书笔记

    一 本书概述 自动化测试篇:Android应用可以使用Java语言配合SDK,也可以使用HTML5技术,还可以用C/C++语言配合NDK技术编写,本书中涵盖了针对这三种技术编写的应用所采用的测试技术. ...

  2. C#中参数传递

    当调用带有参数的方法,需要向方法传递参数,有三种向方法传递参数的方式. 1.值参数:这种方式复制参数的实际值给形式参数,形参和实参使用的是内存中两个不相同的值,形参发生改变不会影响实参的值,从而保证了 ...

  3. Linux内存管理-高端内存(一)

    高端内存是指物理地址大于 896M 的内存.对于这样的内存,无法在“内核直接映射空间”进行映射. 为什么? 因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 ...

  4. Order by排序

    asc 升序(默认),desc 降序 order by 后面  可以加 列.表达式.别名.序号(从1开始) desc; --表达式 年薪 from emp order by 年薪 desc; --别名 ...

  5. Oracle与MySQL使用区别

    与MySQL通过创建不同的数据库来存储表 Oracle提出表空间(tablespace)的概念作为逻辑上的存储区域来存储表, 而不同的表空间由不同的用户来管理 用户可以授予权限或角色 举例: 使用PL ...

  6. Easyui之accordion修改Title样式,字体等

    .accordion{background:#fff;overflow:hidden;}.accordion .accordion-header{background:#efefef;border-t ...

  7. C++_构造函数与析构函数

    构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...

  8. 13JavaScript运算符

    运算符 = 用于给 JavaScript 变量赋值. 算术运算符 + 用于把值加起来 实例 指定变量值,并将值相加: y=5; z=2; x=y+z; 在以上语句执行后,x 的值是:7 1.JavaS ...

  9. php向页面输出中文时出现乱码的解决方法

    今天,刚刚学习PHP发现用echo输出中文时,页面会出现乱码,然后查了一下资料说是浏览器编码格式有问题,要改成utf-8.但是每个人的浏览器编码可能会有所不同,所以找到了一个很好的解决方法, 就是在p ...

  10. C++中一个0xC0000005访问冲突问题

    在冯.诺依曼结构CPU(如i386,ARM A8,A9)的保护模式或者哈佛结构(如8051, ARM M0,.. M3)的CPU下,C++编译器将放置常量的内存设置为只读模式或者放入只读内存中,如果出 ...