Impala 中运行 Hive UDF
场景:部分查询需要快速返回,Impala用于快速复杂的查询
- 1.简单的UDF函数过滤,判断是否包含“好”字,返回boolean类型
import org.apache.hadoop.hive.ql.exec.UDF;/** * @ClassName: UdfTest * @Description: TODO * @author: Jast * @date: 2019年3月10日 上午11:30:20 */public class UdfTest extends UDF {public boolean evaluate(String text){if(text.contains(“好”) {return true;}else {return false;}}}
- 2.将jar包上传到HDFS
hdfs dfs -put /home/xxx/hive-udf.jar /user/hive/lib
- 3.创建函数
create function if not exists udftest(String) returns boolean location "/user/hive/lib/hive-udf.jar" SYMBOL="com.xxx.udftest";
- 4.检查它是否成功创建
[hostname:21000] dw_xxxx> show functions;Query: show functions+-------------+----------------------+-------------+---------------+| return type | signature | binary type | is persistent |++++++++||||+++ BOOLEAN | udftest(STRING) | JAVA | false |+-------------+----------------------+-------------+---------------+Fetched 1 row(s) in 0.01s
- 5.查询结果