【问题标题】:R Error in .jfindClass(as.character(driverClass)[1]) : java.lang.ClassNotFoundException.jfindClass(as.character(driverClass)[1])中的R错误:java.lang.ClassNotFoundException
【发布时间】:2019-04-22 20:22:53
【问题描述】:

尝试在 macOS 上建立与 EMR hive 实例的 R JDBC 连接。得到错误:

    Error in .jfindClass(as.character(driverClass)[1]) : 
    java.lang.ClassNotFoundException

这是我目前所拥有的:

    library(DBI)
    library(rJava)
    library(RJDBC)

    jardir <- "/Users/Downloads/jar_files"
    cp <- paste0(jardir,"/",list.files(path = jardir, pattern = 
    ".jar"))


   .jinit(classpath <- cp)

   drv <- RJDBC::JDBC("com.amazon.hive.jdbc.HS1Driver"
        , classPath = 
   list.files("/Users/Downloads/jar_files",pattern="jar$",
   full.names=T),
   identifier.quote="'")

这是java版本:

    java version "1.8.0_202"
    Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

和R版本:

    R version 3.5.1 (2018-07-02) -- "Feather Spray"
    Copyright (C) 2018 The R Foundation for Statistical Computing
    Platform: x86_64-apple-darwin15.6.0 (64-bit)

【问题讨论】:

    标签: r amazon-emr rjava rjdbc


    【解决方案1】:

    这行得通。必须从这里下载 jar 文件:http://awssupportdatasvcs.com/bootstrap-actions/Simba/AmazonHiveJDBC-1.0.9.1060.zip

    然后将类路径指向它。

    library(DBI)
    library(rJava)
    library(RJDBC)
    
    jardir <- "/Users/rockboy23/Hive"
    cp <- paste0(jardir,"/",list.files(path = jardir, pattern = ".jar"))
    
    
    .jinit(classpath <- cp)
    
    # downloaded the driver from here: http://awssupportdatasvcs.com/bootstrap- 
    # actions/Simba/AmazonHiveJDBC-1.0.9.1060.zip
    
    drv <- RJDBC::JDBC("com.amazon.hive.jdbc41.HS2Driver"
            , classPath = 
    list.files("/Users/rockboy23/Hive",pattern="jar$",full.names=T),
            identifier.quote="'")
    

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 2018-02-02
      • 2021-10-01
      • 1970-01-01
      • 2020-12-12
      相关资源
      最近更新 更多