zoukankan      html  css  js  c++  java
  • 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;



    其他函数功能等待大家尝试。

  • 相关阅读:
    项目目标文档
    系统利益相关者描述案例
    软件需求模式 读书笔记二
    软件需求分析 读书笔记1
    专业实训题目需求分析
    2015年秋季个人阅读计划
    CodeVs 1615 数据备份
    HDU 3900 Unblock Me
    HDU 5898 odd-even number
    HDU 5877 Weak Pair
  • 原文地址:https://www.cnblogs.com/hustzzl/p/7887022.html
Copyright © 2011-2022 走看看