hive新特性reflect函数介绍

时间:2021-10-04 06:25:45

  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函数介绍的更多相关文章

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

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

  2. 【C++11】新特性——Lambda函数

    本篇文章由:http://www.sollyu.com/c11-new-lambda-function/ 文章列表 本文章为系列文章 [C++11]新特性--auto的使用 http://www.so ...

  3. Hive新功能 Cube, Rollup介绍

    说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...

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

    详细请看<C++ Primer plus>(第六版中文版) http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html ...

  5. 002&period;ES2015和ES2016新特性--箭头函数&period;md

    1. ES2015中的箭头函数 JavaScript有一级函数的特性,也就是说,函数像其他值一样可以当成参数传来传去. var result = [1,2,3].reduce(function(tot ...

  6. &period;Net4&period;5新特性&colon;正则表达式超时介绍

    “Regex” 在数据验证方面最受欢迎.考虑到您可能对“Regex”完全陌生的.请参考我介绍Regex如何运作的视频. But because of the typical parsing logic ...

  7. Swift4&period;1 新特性compactMap函数

    关于compactMap函数 苹果在Swift 4.1中新增compactMap函数,用来代替flatMap函数. 在Swift标准库中compactMap定义如下 public func compa ...

  8. C&plus;&plus; 11 新特性:函数声明auto

    1.概览 1.1 函数名中的箭头,用来表明函数的return type,其使用在函数的返回类型需要通过模板参数进行推导,使用在decltype()和declval()不方便的场景 2.正文 c++ 中 ...

  9. ES6新特性箭头函数和常用function&lpar;&rpar;对比

    // 无参 var fn1 = function() {} var fn1 = () => {} // 单个参数 var fn2 = function(a) {} var fn2 = a =&g ...

随机推荐

  1. java类生命周期详细解析

    (一)详解java类的生命周期 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前 ...

  2. &lpar;转&rpar;ajax&period;dll&comma;ajaxpro&period;dll的区别和用法

    ASP.NET AjaxPro的应用 1.首先下载AjaxPro组件.并将AjaxPro.dll引用到网站(或项目). 2.修改Web.config.在 <system.web> 元素中添 ...

  3. CSS打造经典鼠标触发显示选项

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...

  4. JS时钟钟表

    <!DOCTYPE html> <html>    <head>        <meta charset="utf-8" />   ...

  5. Android Toast和Notification

    1. Toast用法 Toast 可以设置:时间,位置,自定义View 1.1 最普通的Toast Toast.makeText(ToastActivity.this, "CarloZ Sh ...

  6. effective c&plus;&plus; 条款3 use const whereever you can

    1 const 传达的意思应该是这个变量是常量不能更改 2 const 在 * 左边表示数据是const,在右边表示指针是const // char greeting[] = "hello& ...

  7. 牛客网编程练习之PAT乙级&lpar;Basic Level&rpar;:1033 害死人不偿命的&lpar;3n&plus;1&rpar;猜想

    3n+1水题.... AC代码: import java.util.Scanner; /** * @author CC11001100 */ public class Main { public st ...

  8. Unity项目导入的error

    5.6.3error 如下:An assembly with the same name `UnityEngine.UI' has already been imported. Consider re ...

  9. Newtonsoft&period;Json 概述

    有时候,在前后台数据交互或者APP与后台交互的时候,我们通常会使用Json进行数据交互,为此会使用到Newtonsoft.Json.dll 这个类库,这个类库非微软官方,但是下载量已经超过了数十万次, ...

  10. &lbrack;mysqli&lowbar;escape&rsqb;mysql转义两次

    // mysqli_real_escape_string // 第一次转义的结果 SELECT * FROM example WHERE f_email='example@exampl.com' an ...