hive------内部函数与自定义函数
hive的内部函数
获取0-1的随机数:
select rand();
select rand(); //固定值
切割split
select split(rand()*100,’\\.’)[0] //获取0-100随机数的整数
四舍五入
select round(rand()*100,x); //x是保留几位小数,默认是取(整数.0)
截取
select substring(rand()*100,0,2);
select substr(rand()*100,0,2); //同上
正则替代
select regexp_replace(“a.jpg”,“jpg”,“png”);
类型转换
select cast(1 as double);
case when
select
case
when 1=1 then"男"
when 1=2 then"女"
else "aaa"
end;
--------写法二--------
SELECT
(CASE 3
WHEN 1 THEN"男"
when 2 then"女"
else "aaa"
end);
select if(1=1,"","")
select if(1=1,"",if(,))
字符串拼接
select(1+2+3) // 6
select (“1”+“2”+“3”); //6.0
select concat(“1”,“2”,“3”) //123
select concat_ws("|",“1”,“2”,“3”) //1|2|3
select length(“asdasdas”);
select size(array(1,2,3));
排名函数
rank() //有并列名次,并且名次空位置
dense_rank() //有并列名次,并列名次后不空位
row_number() //没有相同名次,名次不空位
自定义函数
常见的自定义函数:
udf:用户自定义函数,一个输入一个输出。常用。
udaf:用户自定义聚合函数。多个输入,一个输出
udtf:用户表生成函数。一个输入,多个输出。
udf的使用
1.需要继承UDF,重写evaluate()方法,该方法可以重载
2.(老版)继承GenricUDF,重写evaluate、getDisplayString()、initlize()
udf使用案例
1.拼接字符串 MyConcatUdf
public class MyConcatUdf extends UDF{public static void main(String[] args) {System.out.println(new MyConcatUdf().evaluate ("online"));}public String evaluate(String word) {if(word == null) {return "null";}return word+"_class";}
}
2.根据key获取value KeyToValue
sex=1&weight=123&sla=33333
sla 33333
sex 1
aaa nullpublic class KeyToValue extends UDF{public String evaluate(String a,String key) throws JSONException {}public static void main(String[] args) throws JSONException {}
}
udf的几种部署方法
一、当前session有效(退出重新进入hive失效)
1.将udf的jar包上传到服务器
2.将jar包添加到hive中
hive> add jar /xx/xx.jar
3.创建临时函数
hive>create temporary function myconcat as 'hive.MyConcatUdf'
4.测试临时函数是否可用
show functions;
desc function myconcat;select myconcat("online"); //输出online_class
5.确定无用可以销毁函数
drop function if exists myconcat;
第二种方式
1.将udf的jar包上传到服务器
//放在此目录的jar包会自动启动
//hive-site.xml的hive.aux.jars.path
//1.目前只支持file://也就是本地文件,暂不支持HDFS,也不支持文件夹。
//2.多个文件使用逗号分隔。
//3.不能换行。
<property><name>hive.aux.jars.path</name><value>$HIVE_HOME/auxlib/</value>
</property>
2.在hive的安装目录下的bin下创建一个文件:.hiverc
cd到hive目录
vi ./bin/.hiverc
add jar /xxx/xxx/xx.jar
create temporary function ktv as 'hive.KeyToValue';
//重启
3.测试
select ktv("sex=1&weight=123&sla=33333","sal");
hive------内部函数与自定义函数相关推荐
- hive 元数据 自定义_如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件-阿里云开发者社区...
如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译: 1.使用Intellij工具通过 ...
- Hive的基本操作-自定义函数
自定义函数 1. Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展. 2. 当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用 ...
- Spark之hive的UDF自定义函数
1.简单的 package com.llcc.sparkSql.MyTimeSortimport org.apache.spark.{SparkConf, SparkContext} import o ...
- hive - 自定义函数(超详细步骤,手把手的交)
用Java开发自定义函数,步骤: 1.eclipse上新建一个工程project(db2019): 2.导jar依赖包: db2019右键 --build path --configure... -- ...
- Hive 内置函数及自定义函数
1.内置函数 使用如下命令查看当前hive版本支持的所有内置函数 show functions; 部分截图: 可以使用如下命令查看某个函数的使用方法及作用,比如查看 upper函数 desc func ...
- hive自定义函数UDF的使用方法
虽然Hive已经提供了很多内置的函数,比如count().sum(),但是还是不能满足用户的需求,因此提供了自定义函数供用户自己开发函数来满足自己的需求.本实例通过编写自己的UDF,实现通过一个人的出 ...
- java 根据日期算星座_Hive自定义函数实现通过日期计算星座
虽然Hive已经提供了很多内置的函数,比如count().sum(),但是还是不能满足用户的需求,因此提供了自定义函数供用户自己开发函数来满足自己的需求. 一.自定义函数分类UDF(User-Defi ...
- Spark SQL自定义函数_第五章
1.自定义函数分类 类似于hive当中的自定义函数, spark同样可以使用自定义函数来实现新的功能. spark中的自定义函数有如下3类 1.UDF(User-Defined-Function) 输 ...
- Spark SQL自定义函数
文章目录 自定义函数分类 自定义UDF 自定义UDAF[了解] 自定义函数分类 类似于hive当中的自定义函数, spark同样可以使用自定义函数来实现新的功能. spark中的自定义函数有如下3类 ...
- Hive中的用户自定义函数UDF
Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的 ...
最新文章
- 圆通招java_圆通java程序员面试经验|面试题 - 职朋职业圈
- 物理学家发现粒子是如何自我组装的
- Java6程序设计基础教程_【Java】《Java程序设计基础教程》第三章学习
- nginx子域名 linux,配置nginx服务器 —— Nginx添加多个二级子域名
- 【阿里云课程】生成模型之GAN优化目标设计与改进
- href 一个正则表达式的解析 ? 号解析
- oci连接mysql_OCILIB 连接Oracle数据库——插入数据
- mybatis 映射成多个list_SSM:Mybatis架构与原理
- SSM错误:Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletReque
- nuxt服务端php,nuxt服务端部署上线
- 迁移pg_塑料包装袋中添加剂迁移到食品和药品中危害健康
- Android开发学习之以CameraAPI方式实现相机功能(二)——相机功能配置
- [Hive]Hive的分析函数
- IDEA里面添加lombok插件,编写简略风格Java代码(转)
- 通过chrome的拓展程序访问其他网页
- 基于FPGA的GV7600驱动控制器设计,按照BT1120协议传输YCbCr数据
- 怎么查计算机的ip,教你如何查询电脑ip地址的方法
- php 一次性动态口令,一次性口令 (OTP) 动态口令身份认证
- Apache Storm 官方文档 —— Trident API 概述
- 语音识别公司排名YQ5969智能语音识别模块的快速崛起