[工具类] Hive SQL
2015-11-24 16:52 【戈多】 阅读(353) 评论(0) 编辑 收藏 举报package com.claw.util.hive; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Hql { public static String exec(String sql) throws Exception{ System.out.println("start sql ....."); String result = "0"; List<String> command = new ArrayList<String>(); command.add("hive"); command.add("-e"); command.add(sql); System.out.println(sql); ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command); Process hiveProcess = hiveProcessBuilder.start(); BufferedReader br = new BufferedReader(new InputStreamReader(hiveProcess.getInputStream())); System.out.println("hsql run ......"); String data = null; if((data = br.readLine()) != null){ result = data; } return result; } public static List<String> sqlList(String sql) throws Exception{ System.out.println("start sql list ....."); List<String> list = new ArrayList<String>(); List<String> command = new ArrayList<String>(); command.add("hive"); command.add("-e"); command.add(sql); System.out.println(sql); ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command); Process hiveProcess = hiveProcessBuilder.start(); BufferedReader br = new BufferedReader(new InputStreamReader(hiveProcess.getInputStream())); System.out.println("hsql run ......"); String data = null; while((data = br.readLine()) != null){ list.add(data); } return list; } public static void t() throws Exception{ String sql="select count(distinct(cookie)) from logs where eventdate=20150724"; List<String> command = new ArrayList<String>(); command.add("hive"); command.add("-e"); command.add(sql); ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command); Process hiveProcess = hiveProcessBuilder.start(); BufferedReader br = new BufferedReader(new InputStreamReader(hiveProcess.getInputStream())); String data = null; System.out.println("--------------------"); if ((data = br.readLine()) != null) { System.out.println(data); } } public static void main(String[] args) { try { t(); } catch (Exception e) { // TODO: handle exception } } }