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函数介绍相关推荐

  1. Java8新特性:Stream介绍和总结

    Java8新特性:Stream介绍和总结 什么是Stream 流(Stream)是数据渠道,用于操作数据源(集合.数组等)所生成的元素序列. 集合讲的是数据,流讲的是计算 注意: Stream自己不会 ...

  2. php7 断言,PHP7.2常用新特性和函数

    通过这篇你将了解PHP 7.2版本中添加的一些新特性和函数. PHP 7.2是一个LTS版本,他提供了一些新功能和几个较小的核心改进.开箱即用的PHP 7.2为我们提供了新的哈希,类型提示,类型扩展和 ...

  3. ES6新特性(函数默认参数,箭头函数)

    ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:   从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...

  4. Android系统(62)-----Android 7.1 新特性之 Shortcuts 介绍

    Android 7.1 新特性之 Shortcuts 介绍 Android 7.1 允许 App 自定义 Shortcuts,类似 iOS 的 3D touch.通过在桌面长按 App 弹出 Shor ...

  5. php7.1函数,PHP7.1常用新特性和函数

    在php7发布了之后,官方又紧接着发布了php7.1.php7.2,我们也接着使用了新版本.接下来就说说7.1有那些新的特性. Nullable types 在7的时候,如果使用了强类型就必须传递或者 ...

  6. Java 8 新特性,Optional介绍 | 春松客服

    目录 缘起 Optional类 Optional对象构造方法 提取Optional对象的值 使用orElse()方法获取值 使用filter()方法过滤 示例程序 注意事项 使用场景 orElseGe ...

  7. ES8新特性_async函数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记048

    然后我们再去看es8中第一个新特性,es8中为异步编程又提供了一种方案 以前我们在es6中可以用,生成器函数,以及promise对象实现异步编程. 我们去看看,我们写一个普通的函数,然后前面加上一个a ...

  8. ES6-ES11新特性_ECMAScript_简单介绍---JavaScript_ECMAScript工作笔记001

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 JavaScript就是ECMAScript的一个实现,ECMAScript是一个标准 现在有EC ...

  9. oracle 11g函数包缓存,Oracle11新特性——PLSQL函数缓存结果(一)

    Oracle11g新增的SQL缓存结果集的功能前面已经介绍过了.同时Oracle对PL/SQL的函数也进行了相应的增加.允许函数缓存返回结果. 先看一个简单的例子: SQL> CREATE TA ...

  10. C++11新特性之八——函数对象function

    http://www.cnblogs.com/yyxt/p/3987717.html 详细请看<C++ Primer plus>(第六版中文版) http://www.cnblogs.co ...

最新文章

  1. 用IE重起计算机或者关机
  2. 最新的推荐系统论文两篇
  3. 企业级负载均衡如何实现
  4. DEBERTA(Decoding-enhanced BERT with disentangled attention) 论文笔记
  5. 魅族POP2s真无线耳机正式发布:售价299元!
  6. 计算机处理信息的过程按先后顺序可表述为,信息加工理论按照信息处理的先后顺序将记忆区分为三个阶段系统;感觉记忆、()长时记忆。...
  7. spring mvc实例
  8. golang服务器压力测试,压力测试 - Go语言中文网 - Golang中文社区
  9. 内网ip映射外网方法
  10. 撤回/修改已经发送的Outlook邮件
  11. android逆向开发工程师需要掌握的技能
  12. 程序员专属表情包,正在疯传中!
  13. 反线性插值法进一步优化二分法解区间-M语言
  14. Windows FLASK环境
  15. 985在读硕士晓文大数据学习之路1:出发
  16. 运行java提示未签名_java – JNLP:在签名代码中加载未签名的代码
  17. gtest学习笔记--2测试夹具(类)TEST_F
  18. 手机号如何批量导入通讯录?
  19. remote: error: cannot lock ref ‘refs/heads/dev/mz/dev‘: ‘refs/heads/dev‘ exists; cannot create ‘refs
  20. 中微单片机79F738

热门文章

  1. 百胜也要做外卖?市场会重新回到三足鼎立吗
  2. 用max的角度来解析blender建模!
  3. linux查看进程命令wwn,在Linux下查看WWN、WWPN方法
  4. MySql的基石——索引
  5. mybatis-plus 多条件下关键字查询
  6. Qt中打包程序运行时出现:0xc000007b错误
  7. 长春甲骨文华育兴业|大数据社会的十三大具体应用场景
  8. android 如何读取u盘中数据恢复,U盘数据恢复
  9. 多元线性回归模型预测房价
  10. linux之kubuntu挂载硬盘