MyEclipes下执行Hive语句查询Hbase数据库数据

前几天有一个top100的案例分享,全程听了各个公司架构组的一些案例技术分享,发现大家都在大数据方面投入很大,相比当当,58,阿里巴巴,Facebook,Google这些公司。新浪的分享者比较保守,很多不算牵扯到细节都系都说不方便说,其实技术都是那些技术,只是业务不同产生很多不同的架构,感觉没必要。

闲话不多说,最近完成了在MyEclipes完成了hive操作Hbase数据库数据,直接上代码

定义枚举。

public enum SqlType

{

ALLORDERNUMBER,

DAYORDERUNMBER,

}

具体方法

public int getAllOrderNumber() {

java.util.Calendar c=java.util.Calendar.getInstance();

java.text.SimpleDateFormat f=new java.text.SimpleDateFormat(“yyyy-MM-dd-hh-mm”);

return getAllOrderNumber(“0″, f.toString());

}

public int getAllOrderNumber(String startData, String endData) {

try {

return (Integer) selectTable(SqlType.ALLORDERNUMBER,startData,endData);

} catch (SQLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

return 0;

}

public static Object selectTable(SqlType type,String startData,String endData) throws SQLException, ClassNotFoundException {

Class.forName(“org.apache.hadoop.hive.jdbc.HiveDriver”);

String querySQL = null;

switch(type)

{

case ALLORDERNUMBER:

querySQL = “SELECT count(DISTINCT Content['UserID']) FROM LoanOrder Where Content['CreateTime']>’@’ AND Content['CreateTime']<‘!'” ;

querySQL = querySQL.replaceAll(“@”,startData);

querySQL = querySQL.replaceAll(“!”,endData);

System.out.println(querySQL);

break;

case DAYORDERUNMBER:

System.out.println(“1″);

querySQL = “SELECT *, count( DISTINCT Content['UserID']) FROM LoanOrder GROUP BY Content['UserID']” ;

break;

default :System.out.println(“没有对应的枚举类型”);

}

Connection con = DriverManager.getConnection(

“jdbc:hive://192.168.3.232:10000/default”, “”, “”);

Statement stmt = con.createStatement();

ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句

while (res.next()) {

System.out.println(“Result: key: ” + res.getString(1)+”——-“+ res.getString(2));

// System.out.println(“Result: key: ” + res.getString(1));

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值