java程序中执行HiveQL
这里是指java中执行hive或者hiveQL。
注意:而不是经常说的通过JDBC的方式连接Hiveserver2来执行查询。是在部署了hiveserver的服务器上执行hive命令。这样就可以将分析得结果写到文件中,不用一定在hive的命令行client下执行。
String sql="show tables; select * 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); }
坚持不懈