写的不到位的地方,欢迎评论指出不足之处
代码
package com.my.hive.demo;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class AddString extends UDF {
public Text evaluate(final Text t) {
if (t == null)
return new Text("No");
String str = t.toString() + ":Good";
return new Text(str);
}
}
Maven pom.xml
exec:提供 UDF
spring:依赖包
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.4</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring</id>
<url>https://maven.aliyun.com/repository/spring</url>
</repository>
</repositories>
上传
通过 Maven 将项目打包成 JAR
FTP 上传到 服务器
并且上传 HDFS
Hive 启用
启用 hive --service metastore 进入 hive (开发者可用)
若是:启用 hiveserver2 进入 hive,创建自定义函数会报错?
创建永久自定义函数
create function addstr as 'com.my.hive.demo.AddString'
using jar 'hdfs://myHA/hadoop/jar/hive_demo-1.0.jar';
查询自定义函数
删除自定义函数
?
创建临时自定义函数
只在当前会话周期有效
|