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> select reflect("java.lang.Math","max",12,13) ;
OK
13
Time taken: 0.869 seconds, Fetched: 1 row(s)
hive> select reflect("org.apache.commons.lang.math.NumberUtils","isNumber","123") ;
OK
true
Time taken: 0.091 seconds, Fetched: 1 row(s)
hive>
Hive新特性reflect函数介绍相关推荐
- Java8新特性:Stream介绍和总结
Java8新特性:Stream介绍和总结 什么是Stream 流(Stream)是数据渠道,用于操作数据源(集合.数组等)所生成的元素序列. 集合讲的是数据,流讲的是计算 注意: Stream自己不会 ...
- php7 断言,PHP7.2常用新特性和函数
通过这篇你将了解PHP 7.2版本中添加的一些新特性和函数. PHP 7.2是一个LTS版本,他提供了一些新功能和几个较小的核心改进.开箱即用的PHP 7.2为我们提供了新的哈希,类型提示,类型扩展和 ...
- ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...
- Android系统(62)-----Android 7.1 新特性之 Shortcuts 介绍
Android 7.1 新特性之 Shortcuts 介绍 Android 7.1 允许 App 自定义 Shortcuts,类似 iOS 的 3D touch.通过在桌面长按 App 弹出 Shor ...
- php7.1函数,PHP7.1常用新特性和函数
在php7发布了之后,官方又紧接着发布了php7.1.php7.2,我们也接着使用了新版本.接下来就说说7.1有那些新的特性. Nullable types 在7的时候,如果使用了强类型就必须传递或者 ...
- Java 8 新特性,Optional介绍 | 春松客服
目录 缘起 Optional类 Optional对象构造方法 提取Optional对象的值 使用orElse()方法获取值 使用filter()方法过滤 示例程序 注意事项 使用场景 orElseGe ...
- ES8新特性_async函数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记048
然后我们再去看es8中第一个新特性,es8中为异步编程又提供了一种方案 以前我们在es6中可以用,生成器函数,以及promise对象实现异步编程. 我们去看看,我们写一个普通的函数,然后前面加上一个a ...
- ES6-ES11新特性_ECMAScript_简单介绍---JavaScript_ECMAScript工作笔记001
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 JavaScript就是ECMAScript的一个实现,ECMAScript是一个标准 现在有EC ...
- oracle 11g函数包缓存,Oracle11新特性——PLSQL函数缓存结果(一)
Oracle11g新增的SQL缓存结果集的功能前面已经介绍过了.同时Oracle对PL/SQL的函数也进行了相应的增加.允许函数缓存返回结果. 先看一个简单的例子: SQL> CREATE TA ...
- C++11新特性之八——函数对象function
http://www.cnblogs.com/yyxt/p/3987717.html 详细请看<C++ Primer plus>(第六版中文版) http://www.cnblogs.co ...
最新文章
- 用IE重起计算机或者关机
- 最新的推荐系统论文两篇
- 企业级负载均衡如何实现
- DEBERTA(Decoding-enhanced BERT with disentangled attention) 论文笔记
- 魅族POP2s真无线耳机正式发布:售价299元!
- 计算机处理信息的过程按先后顺序可表述为,信息加工理论按照信息处理的先后顺序将记忆区分为三个阶段系统;感觉记忆、()长时记忆。...
- spring mvc实例
- golang服务器压力测试,压力测试 - Go语言中文网 - Golang中文社区
- 内网ip映射外网方法
- 撤回/修改已经发送的Outlook邮件
- android逆向开发工程师需要掌握的技能
- 程序员专属表情包,正在疯传中!
- 反线性插值法进一步优化二分法解区间-M语言
- Windows FLASK环境
- 985在读硕士晓文大数据学习之路1:出发
- 运行java提示未签名_java – JNLP:在签名代码中加载未签名的代码
- gtest学习笔记--2测试夹具(类)TEST_F
- 手机号如何批量导入通讯录?
- remote: error: cannot lock ref ‘refs/heads/dev/mz/dev‘: ‘refs/heads/dev‘ exists; cannot create ‘refs
- 中微单片机79F738