Hive新特性reflect函数介绍

本文介绍了Hive的reflect函数,它允许在Hive SQL中直接调用Java内置函数,如Math.max(),甚至可以使用Apache Commons库的方法。通过示例展示了如何根据不同记录执行不同的函数,以及如何使用第三方jar中的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中的函数,c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十六画生的博客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值