栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive自定义udtf函数

hive自定义udtf函数

hive自定义udtf函数
1、添加依赖




    4.0.0
    hive-demo
 
     
         org.apache.hive
         hive-exec
         3.1.2
     
       
            org.apache.hadoop
            hadoop-client
            3.1.3
        
 



2 实现GenericUDTF
mport org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;

import java.util.ArrayList;

public class MyUDTF extends GenericUDTF {
    private ArrayList outPutLists=new ArrayList<>();
    @Override
    public StructObjectInspector initialize(StructObjectInspector argOIs) throws UDFArgumentException {
        ArrayList fieldNames = new ArrayList<>();
        fieldNames.add("word");
        ArrayList fieldOIs = new ArrayList<>();
        fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
        return ObjectInspectorFactory.getStandardStructObjectInspector(fieldNames,fieldOIs);

    }

    @Override
    public void process(Object[] objects) throws HiveException {
        String input = objects[0].toString();
        String[] words = input.split(",");

        for (String word:words){
            outPutLists.clear();
            outPutLists.add(word);
            forward(outPutLists);
        }
    }

    @Override
    public void close() throws HiveException {

    }
}

3 测试

1 add jar /opt/module/hive/mylib/hive-demo-1.0-SNAPSHOT.jar
2 create temporary function myudtf as “udf.MyUDTF”;
3 select myudtf(“hello world,haoop,hive,spark,wak”);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号