String sql="show tablesselect * from test_tb limit 10"
List<String>command = new ArrayList<String>()
command.add("hive")
command.add("-e")
command.add(sql)
List<String>results = new ArrayList<String>()
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。
2、JDBC连接的方式,当然还有其他的连接方式,比如ODBC等, 这种方式很常用,可以在网上随便找到,就不再累赘了。不稳定,经常会被大数据量冲挂,不建议使用。 3、这种方式是直接利用Hive的 Driver class 来直接连接,感觉这种方式不通过JDBC,应该速度会比较快一点(未经验证)。我只是在local模式下测试过。在方法里面的最前面添加上:reqest.setCharacterEncoding("UTF-8")
response.setCharacterEncoding("UTF-8")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)