由于需要满足一个hive中不等值连接的需求,必须得自己手工写udf。以前也没有试过,所以今天尝试了下自己写了个TestHello.java.
由于没有用eclipse,所以直接用的是ultraedi+javac搞定的。
--在/home/dwdev/cajeep目录下,新建com\alibaba\hive\udf,
--命令mkdir -p com\alibaba\hive\udf
--新建java文件 vi com\alibaba\hive\udf\TestHello.java
java内容如下:
package com.alibaba.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF ;
public class TestHello extends UDF{
public String evaluate(){
return "hello world!";
}
public String evaluate(String str){
return "hello world: " + str;
}
};
--仍旧在当前目录下,执行javac的编译命令。javac -classpath /dhwdata/hadoop/hadoop-0.19.2-core.jar:/dhwdata/hive/lib/hive-exec-1.1.2.jar /home/dwdev/cajeep/com/alibaba/hive/udf/TestHello.java
--将对应的class文件进行打包,jar -cvf TestHello.jar com/alib