hive随笔5

1.udf函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容
2.编写udf函数的时候需要注意以下几点
(1)自定义udf需要继承org.apache.hadoop.hive.ql.exec.UDF
(2)需要evaluate函数
3.步骤
(1)把程序打包放到目标机器上去
(2)进入hive客服端,添加jar包:add jar /usr/local/testdata/hive/hive_UP.jar
(3)创建临时函数:hive>create temporary function f_up as ‘hive_demo.hive_udf’
f_up --》函数名 ‘hive_demo.hive_udf’ --》函数主类名
4.查询sql语句
select f_up(line) from wc_test;
销毁临时函数:hive>drop temporary function f_up;
注意:UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF

pom.xml依赖

org.apache.hive
hive-exec
1.2.1

public class hive_udf extends UDF{
public String evaluate (String word){
String upperCase = word.toUpperCase();
return upperCase;
}
}

5.hive的jdbc连接
(1)首先开启metastore
hive --service metastore &

(2)先开启hiveservice2
hive --service hiveserver2 &

添加maven依赖

org.apache.hive
hive-jdbc
1.2.1

其次在eclipse中编写代码,java中的jdbc

package 包名;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class 类名{
public static void main(){
Class.forName(“org.apache.hive.jdbc.HiveDriver”);
Connection con = DriverManager.getConnection(“jdbc:hive2://192.168.8.10:10000/数据库名”);
Statement cs = con.createStatement();
//查询sql,query
ResultSet rs = cs.executeQuery(“select * from 数据库名.表名”);
//通常用于DDL操作
//cs.exectte(“create table test”);
while(rs.next()){
String word = rs.getString(1);
String count = rs.getString(2);
System.out.println(word + “,” + count);
}
rs.close();
cs.close();
con.close();
}

}

6.定时功能-- hive -e 写在shell脚本里
hive -e “select * from shujuku.tablename limit 5”
可以直接在没有启动hive的集群下执行执行sql语句

可以写一个shell脚本: //shell脚本什么都可以写
cd /opt
vi test.sh -->
内容如下

#!/bin/bash
hive -e “select * from shujuku.tablename limit 5”

保存,退出

启动脚本:
sh test.sh

// #!/bin/bash 这里面还可以写语法
#!/bin/bash
date_time=$(date ‘+%Y%m%d’)
echo d a t e t i m e h i v e − e " s e l e c t ∗ f r o m s h u j u k u . t a b l e n a m e w h e r e p t = date_time hive -e "select * from shujuku.tablename where pt= datetimehivee"selectfromshujuku.tablenamewherept=date_time limit 5"
保存,退出

启动脚本:
sh test.sh

7.定时功能-- hive -f 写在shell脚本里
hive -f /opt/test.hql

hive -f 的shell脚本如下:
cd /opt
vi test.hql -->
内容如下

//直接写sql
select * from shujuku.tablename limit 5

启动脚本:
hive -f test.hql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值