中易网

如何在Java中执行Hive命令或HiveQL

答案:2  悬赏:70  
解决时间 2021-02-26 16:33
如何在Java中执行Hive命令或HiveQL
最佳答案
Java在1.5过后提供了ProcessBuilder根据运行时环境启动一个Process调用执行运行时环境下的命令或应用程序(1.5以前使用Runtime),关于ProcessBuilder请参考Java相关文档。调用代码如下:
String sql="show tables; select * from test_tb limit 10";
List command = new ArrayList();
command.add("hive");
command.add("-e");
command.add(sql);
List results = new ArrayList();
ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command);
hiveProcess = hiveProcessBuilder.start();
BufferedReader br = new BufferedReader(new InputStreamReader(
hiveProcess.getInputStream()));
String data = null;
while ((data = br.readLine()) != null) {
results.add(data);
}
其中command可以是其它Hive命令,不一定是HiveQL。
全部回答
java client 中hql执行跟数据库jdbc操作基本相同
1. maven工程依赖hive-jdbc相关jar包,其他工程类型参见maven repsository 相关依赖提示.
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>2.1.0</version>
</dependency>
2. 书写相关代码,如果有链接池配置相关参数就好,注意链接池和hive-jdbc版本问题,过高的链接池版本配置hive-jdbc较低时,在连接校验时会出现unsupport异常.
// 加载驱动
Class.forName("org.apache.hive.jdbc.HiveDriver ");
// connection 为java.sql.Connection
Connection connection = DriverManager.getConnection("jdbc:hive2://locahost:10000/test");
// TODO:后续操作跟数据库jdbc操作一样,不要忘记关闭数据库连接.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一块豆腐切五刀,怎样切32块?
我女友的前男友跟我女友女友分手一年,回来找
这个是什么牌子的巧克力
如何去除MFC对话框Dialog中的ESC键关闭程序的
简便计算33×13 33×79×33
指将来含义的这个星期六的下午英语怎么说?
英语基本时态总结
东莞违章怎么交费
面试后一直不给消息应该怎么办?
累屎我了…
执业医师资格考试专业基础主要考的是什么科目
中国移动草店自建他营营业厅地址有知道的么?
厨房水龙头的风水禁忌知多少
プロフィール翻译
护墙板怎么收口
推荐资讯
吃螃蟹过了四个小时能吃梨吗
PCl5和PCl3哪个更稳定?
千岛湖洲际度假酒店-电影吧在哪里啊,我有事
感谢所有爱你如草芥的人 是什么意思?
成都老国药房郫县蜀仁东顺药房地址在什么地方
北京农学院-实验楼A座我想知道这个在什么地方
我的车导航SD卡在电脑中如何格式化?我把SD卡
在一个圆柱上挖了一个边长为2厘米的方形孔,
一头是usb接头,一头是电子秤充电接头
上坭村地址在哪,我要去那里办事
hibernate 中HQL语句写完之后查出来的每条数
身体发冷能去蒸汗吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?