hive新特性reflect函数介绍
reflect函数可以支持在sql中调用java中的自带函数,秒杀一切udf函数。
使用案例1:所有记录执行相同的java内置函数
hive中建一张表test_udf:column1(int),column2(int)
表中数据如下:
1,2
2,3
3,4
4,5
5,6
sql:select reflect("java.lang.Math","max",column1,column2) from test_udf
结果:
2
3
4
5
6
可以根据自己的需求使用其他内置函数,以后不用苦逼的求udf开发人员给自己特定开发了。当然特殊场景还是需要的。下面来个更绝的用法。
使用案例2:不同记录执行不同的java内置函数
建表test_udf2:class_name(string),method_name(string),column1,column2
数据如下:
java.lang.Math,min,1,2
java.lang.Math,max,2,3
sql:select reflect(class_name,method_name,column1,column2) from test_udf2;
结果:
1
3
使用案例3:使用apache commons中的函数,commons下的jar已经包含在hadoop的classpath中,所以可以直接使用。
使用方式如下:
select reflect("org.apache.commons.lang.math.NumberUtils","isNumber","123") from dual;
结果:
true
使用案例4:使用第三方jar
add jar hdfs://hdpnn:9000/group/analysts/ide_taobao-hz_boqian.zwq/hive/udf_jar/11354193197093.jar;
select reflect(class_name,method_name,"123") from dual;
其他函数功能等待大家尝试。
hive新特性reflect函数介绍的更多相关文章
- ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...
- 【C++11】新特性——Lambda函数
本篇文章由:http://www.sollyu.com/c11-new-lambda-function/ 文章列表 本文章为系列文章 [C++11]新特性--auto的使用 http://www.so ...
- Java8新特性: lambda 表达式介绍
一.lambda 表达式介绍 lambda 表达式是 Java 8 的一个新特性,可以取代大部分的匿名内部类,简化了匿名委托的使用,让你让代码更加简洁,优雅. 比较官方的定义是这样的: lambda ...
- Hive新功能 Cube, Rollup介绍
说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...
- C++11新特性之八——函数对象function
详细请看<C++ Primer plus>(第六版中文版) http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html ...
- 002.ES2015和ES2016新特性--箭头函数.md
1. ES2015中的箭头函数 JavaScript有一级函数的特性,也就是说,函数像其他值一样可以当成参数传来传去. var result = [1,2,3].reduce(function(tot ...
- .Net4.5新特性:正则表达式超时介绍
“Regex” 在数据验证方面最受欢迎.考虑到您可能对“Regex”完全陌生的.请参考我介绍Regex如何运作的视频. But because of the typical parsing logic ...
- Swift4.1 新特性compactMap函数
关于compactMap函数 苹果在Swift 4.1中新增compactMap函数,用来代替flatMap函数. 在Swift标准库中compactMap定义如下 public func compa ...
- C++ 11 新特性:函数声明auto
1.概览 1.1 函数名中的箭头,用来表明函数的return type,其使用在函数的返回类型需要通过模板参数进行推导,使用在decltype()和declval()不方便的场景 2.正文 c++ 中 ...
随机推荐
- Python -- Records项目学习
Records学习笔记 Records链接地址 1. __getitem__(self, key) 内建方法(Build-in) 例子: class Test(object): def __getit ...
- phpcms v9 搜索结果列表页时间显示1970问题解决方案
对于喜欢用phpcms v9 的小伙伴来说,在调用时间时,总会出现时间1970这样的问题,对于这个问题,网上的说法很多,内容页时间显示通常不会问题,搜索结果页就不行了,通过总结,发现使用{format ...
- Python数据增强(data augmentation)库--Augmentor 使用介绍
Augmentor 使用介绍 原图 random_distortion(probability, grid_height, grid_width, magnitude) 最终选择参数为 p.rando ...
- Socket程序从windows移植到linux下需要注意的
)头文件 windows下winsock.h或winsock2.h linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in. ...
- Flask 学习 四 数据库
class Role(db.Model): __tablename__='roles' id = db.Column(db.Integer,primary_key=True) name = db.Co ...
- 《高级软件测试》Linux平台Jira的安装与配置
现在大部分的程序开发都是在linux下进行的,jira更多的时候是安装在linux上,那么,如何在linux下安装配置jira呢?本文将以Ubuntu 17.10和jira7.5.2为例,对linux ...
- 根据HTML5的新方法 drag & drop 方法实现表格拖拽实例
上一次学习了html5的drag和drop方法,传送门 就自己写了个例子加深自己对drag和drop的理解.不过一开始不是很简单,遇到了不少问题.还好网络万能的,什么都能查到,总算完成了. 说明和详 ...
- redis入门(14)redis集群下的数据分区存储
redis入门(10)redis集群下的数据分区存储
- Spring Security入门(3-5)Spring Security 的鉴权 - 决策管理器和投票器
1.决策管理器的运行原理: 2.Spring Security提供的决策管理器实现 3.用户自定义的决策管理器
- python网络爬虫与信息提取 学习笔记day3
Day3: 只需两行代码解析html或xml信息 具体代码实现:day3_1 注意BeautifulSoup的B和S需要大写,因为python大小写敏感 import requests r ...