注意下:如果不引人jdk.tools,可能会报错:Missing artifact jdk.tools:jdk.tools:jar:1.8;<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
</dependency>
package com.hadoop.hive;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
/****************************************************************************
* com.hadoop.hive ConcatString.java Created on 2015年11月20日
*
* @Author: linfenliang
* @Description:
* @Version: 1.0
***************************************************************************/
public class ConcatString extends UDF{
public Text evaluate(Text t1,Text t2) {
return new Text(t1.toString()+"*****"+t2.toString());
}
}
4、将该jar添加到hive中,/var/develop/apache-hive-1.2.1-bin/
5、在hive命令行中创建临时函数,调用自定义函数,add jar /var/develop/apache-hive-1.2.1-bin/hadoop-hive-0.0.1-SNAPSHOT.jar
查询试下:create temporary function myconcat as 'com.hadoop.hive.ConcatString';
输出结果:select myconcat('111','222');
+--------------+--+
| _c0 |
+--------------+--+
| 111*****222 |
+--------------+--+
1 row selected (0.079 seconds)