IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    利用 JDBC 驱动连接 R 和 Hive

    刘思喆@贝吉塔行星发表于 2016-11-19 00:00:00
    love 0

    几年前写过一篇简单的博客来讲如何利用 RHive 协同操作 Hive 和 R。这个包貌似很久未做维护,不是太好用, 其实 RHive 包底层通过 JDBC 调用数据,所以通过 RJDBC 其实是更简单的方式。废话少说,直接贴代码:

      library("DBI")
      library("rJava")
      library("RJDBC")
      for(l in list.files('/opt/org/apache/hive/1.1.1/hive-on-mr/lib/')){ .jaddClassPath(paste("/opt/org/apache/hive/1.1.1/hive-on-mr/lib/",l,sep=""))}
      drv <- JDBC("org.apache.hive.jdbc.HiveDriver", "/opt/org/apache/hive/1.1.1/hive-on-mr/lib/hive-jdbc-1.1.1-standalone.jar")
      for(l in list.files('/opt/org/apache/hadoop/2.7.3/share/hadoop/common/')){ .jaddClassPath(paste("/opt/org/apache/hadoop/2.7.3/share/hadoop/common/",l,sep=""))}
      conn <- dbConnect(drv, "jdbc:hive2://10.0.2.9:10000/default", "", "")
      
      show_databases <- dbGetQuery(conn, "describe dwd.dwd_user_dim_user_base")
      library(knitr)
      kable(show_databases) # table meta data, for gollum wiki
      
      ## Get data from hive
      d <- dbGetQuery(conn, 'select * from ods.user limit 10')
    

    配置是同事帮忙搞定的,团队在很顺畅的使用。 如果有客官能解释一下细节的原理,善赞善哉~~



沪ICP备19023445号-2号
友情链接