美文网首页
大数据:Hive自定义函数的使用

大数据:Hive自定义函数的使用

作者: 李逍遥JK | 来源:发表于2018-01-16 10:17 被阅读57次

1.先开发一个java类,继承UDF,并重载evaluate方法

package com.wlw.udf;
/**
 * 将json转为对象
 * @author Tomas 
 */
import com.alibaba.fastjson.JSON;
import org.apache.hadoop.hive.ql.exec.UDF;

public class JsonPraser extends UDF{

    public String evaluate(String str){
        MovieRateBean movieRateBean = JSON.parseObject(str, MovieRateBean.class);
        return movieRateBean.toString();
    }

}
package com.wlw.udf;

/**
 * javabeen类
 * @author Tomas
 */
public class MovieRateBean {
    private String movie;
    private String rate;
    private String timeStamp;
    private String uid;
    public String getMovie() {
        return movie;
    }
    public void setMovie(String movie) {
        this.movie = movie;
    }
    public String getRate() {
        return rate;
    }
    public void setRate(String rate) {
        this.rate = rate;
    }
    public String getTimeStamp() {
        return timeStamp;
    }
    public void setTimeStamp(String timeStamp) {
        this.timeStamp = timeStamp;
    }
    public String getUid() {
        return uid;
    }
    public void setUid(String uid) {
        this.uid = uid;
    }
    @Override
    public String toString() {
        return movie + "\t" + rate + "\t" + timeStamp + "\t" + uid;
    }
}

2.打成jar包上传到服务器

3.建立数据表并导入数据

create table rat_json(line string) row format delimited;
load data local inpath '/home/hadoop/rating.json' into table rat_json;

4.将jar包添加到hive的classpath

hive>add JAR /home/hadoop/udf.jar;

5.创建自定义函数与开发好的java class关联

create temporary function jsonpar as 'com.wlw.udf.JsonPraser';

6.使用自定义函数

insert overwrite table t_rating
select split(jsonpar(line),'\t')[0]as movieid,
  split(jsonpar(line),'\t')[1] as rate,split(jsonpar(line),'\t')[2] as timestring,
  split(jsonpar(line),'\t')[3] as uid from   rat_json limit 10;

7.使用hive自带的函数

select get_json_object(line,'$.movie') as moive,get_json_object(line,'$.rate') as rate  from rat_json limit 10;
hive自带函数.png

相关文章

  • HIVE UDTF 自定义函数

    HIVE UDTF 自定义函数 关键词:HIVE UDTF 开发 实例Hive运行用户自定义函数对数据信息处理,...

  • Hive自定义UDF UDAF UDTF

    hive允许用户使用自定义函数解决hive 自带函数无法处理的逻辑。hive自定义函数只在当前线程内临时有效,可以...

  • flink modules详解之使用hive函数

    modules概念 通过hive module使用hive函数内置函数自定义函数 sql 客户端的使用 原理分析和...

  • Hive的UDF函数

    【前言】常见的数据库都有函数,hive自身也有函数。分为内置函数和自定义的UDF函数,自定义函数例如(sum 、c...

  • 学习中的关键的问题

    hive中的topn操作需要使用到hive的窗口函数执行操作的。 spark的udf可以实现自定义的udf的函数的...

  • 添加 Hive 自定义函数

    使用 Java 编写好 UDF 或 UDAF 函数后,Hive 要如何使用这些自定义函数呢? 1 在 HDFS 上...

  • Hive之自定义函数

    自定义函数是什么 当hive内置函数无法满足业务需求的时候,可以通过编写用户自定义函数来使用。1、按照定义函数方式...

  • Hive开发自定义函数UDF

    Hive 内置函数 Hive自定义函数 UDF(User-Defined-Function) 一进一出 UDAF(...

  • hive udf 函数:MD5

    利用 hive 做数据查询或者分析的时候,原生的 hive 函数可能无法满足我们的需求,这时候我们可以自定义 hi...

  • APP开发实战64-Activity数据传递机制

    16.4.2数据传递机制 (1)使用Activity系统函数传递数据 (2)使用自定义接口函数传递数据 (3)使用...

网友评论

      本文标题:大数据:Hive自定义函数的使用

      本文链接:https://www.haomeiwen.com/subject/hxzjoxtx.html