Created
December 24, 2012 11:26
-
-
Save yssharma/4368889 to your computer and use it in GitHub Desktop.
Sample Hive JDBC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.sql.SQLException; | |
| import java.sql.Connection; | |
| import java.sql.ResultSet; | |
| import java.sql.Statement; | |
| import java.sql.DriverManager; | |
| public class HiveJDBC { | |
| private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; | |
| /** | |
| * @param args | |
| * @throws SQLException | |
| */ | |
| public static void main(String[] args) throws SQLException { | |
| try { | |
| Class.forName(driverName); | |
| } catch (ClassNotFoundException e) { | |
| // TODO Auto-generated catch block | |
| e.printStackTrace(); | |
| System.exit(1); | |
| } | |
| Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", ""); | |
| Statement stmt = con.createStatement(); | |
| String tableName = "testHiveDriverTable"; | |
| stmt.executeQuery("drop table " + tableName); | |
| ResultSet res = stmt.executeQuery("create table " + tableName + " (city string, temperature int)"); | |
| // show tables | |
| String sql = "show tables '" + tableName + "'"; | |
| System.out.println("Running: " + sql); | |
| res = stmt.executeQuery(sql); | |
| if (res.next()) { | |
| System.out.println(res.getString(1)); | |
| } | |
| // describe table | |
| sql = "describe " + tableName; | |
| System.out.println("Running: " + sql); | |
| res = stmt.executeQuery(sql); | |
| while (res.next()) { | |
| System.out.println(res.getString(1) + "\t" + res.getString(2)); | |
| } | |
| // load data into table | |
| // NOTE: filepath has to be local to the hive server | |
| // NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per line | |
| String filepath = "/home/ubuntu/yash_workspace/data"; | |
| sql = "load data local inpath '" + filepath + "' into table " + tableName; | |
| System.out.println("Running: " + sql); | |
| res = stmt.executeQuery(sql); | |
| // select * query | |
| sql = "select * from " + tableName; | |
| System.out.println("Running: " + sql); | |
| res = stmt.executeQuery(sql); | |
| while (res.next()) { | |
| System.out.println(String.valueOf(res.getString(1)) + "\t" + res.getInt(2)); | |
| } | |
| // regular hive query | |
| sql = "select count(1) from " + tableName; | |
| System.out.println("Running: " + sql); | |
| res = stmt.executeQuery(sql); | |
| while (res.next()) { | |
| System.out.println(res.getString(1)); | |
| } | |
| stmt.close(); | |
| con.close(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment