Java 使用JDBC将R连接到配置单元
我正在尝试使用RJDBC包将R连接到Hive群集 我写的代码是:Java 使用JDBC将R连接到配置单元,java,r,hadoop,jdbc,Java,R,Hadoop,Jdbc,我正在尝试使用RJDBC包将R连接到Hive群集 我写的代码是: drv <- JDBC(driverClass = "org.apache.hive.jdbc.HiveDriver", classPath = list.files("C:/hive-jdbc/hive-jdbc-0.10.0.jar", pattern="jar$",full.names=T), identifier.quot
drv <- JDBC(driverClass = "org.apache.hive.jdbc.HiveDriver",
classPath = list.files("C:/hive-jdbc/hive-jdbc-0.10.0.jar",
pattern="jar$",full.names=T),
identifier.quote="'")
有人能帮我做这个吗?
classPath = list.files("C:/hive-jdbc/hive-jdbc-0.10.0.jar",
pattern="jar$",full.names=T)
您可以使用list.files
。list.files
的第一个参数应该是一个文件夹,您似乎给了它一个jar文件。系统上的list.files
功能的输出是什么?可能是字符(0)
。这就把类路径
搞砸了。解决了这个问题-它不清楚您希望classPath
参数的值在这里是什么。如果希望它是文件夹中的所有.jar
文件,那么
list.files("C:/wherever/", pattern="\.jar$", full.names=TRUE)
我应该这样做。如果只是一个jar文件,只需将其放入:
classPath="C:/hive-jdbc/hive-blahlah-999.jar"
在电话里。保持简单 作为对Prateek的回答——“找不到类”,因为它不在jar文件中:在类路径中需要更多的jar文件。对我来说,这是:
/usr/lib/hive/lib/hive-jdbc.jar
/usr/lib/hive/lib/libthrift-0.9.2.jar
/usr/lib/hive/lib/hive-service.jar
/usr/lib/hive/lib/httpclient-4.2.5.jar
/usr/lib/hive/lib/httpcore-4.2.5.jar
/usr/lib/hive/lib/hive-jdbc-standalone.jar
/usr/lib/hadoop/client/hadoop-common.jar
(其中一些文件引用是指向真实文件的符号链接-获取真实文件!)我还写了一篇关于如何使其正常工作的基本文章:谢谢。这样做删除了前面的错误。但现在,它抛出了另一个错误:在.jfindClass(as.character(driverClass)[1]):类中出错,找不到
/usr/lib/hive/lib/hive-jdbc.jar
/usr/lib/hive/lib/libthrift-0.9.2.jar
/usr/lib/hive/lib/hive-service.jar
/usr/lib/hive/lib/httpclient-4.2.5.jar
/usr/lib/hive/lib/httpcore-4.2.5.jar
/usr/lib/hive/lib/hive-jdbc-standalone.jar
/usr/lib/hadoop/client/hadoop-common.jar