我一直在尝试使用 RJDBC 包将 R(在本地机器上)与 Hive(服务器)连接,并且看到错误:
.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误:java.sql.SQLException: org.apache.thrift.TApplicationException: 方法名无效: '执行'
我直接将服务器上运行的 jar 复制到我的本地机器上,这不应该是驱动程序版本的问题。我也尝试过使用早期版本的 RJDBC 包,但也没有用。
我真的很感激任何想法/建议。
我的脚本:
#hive_connection <-函数(主机名,端口,lib_dir,hive_jars){库(RJDBC)库(DBI)库(rJava)库(Rserve)
# lib_dir: 包含 jar 和驱动程序的目录 hive_class_path <- file.path( lib_dir, hive_jars )
drv <- JDBC( 'org.apache.hadoop.hive.jdbc.HiveDriver', classPath= hive_class_path, "`" ) 服务器 <- sprintf( 'jdbc:hive://%s:%s', 主机名, 端口)
返回(dbConnect(驱动器,服务器,'hive','hive'))}
conn <- hive_connection('hostname',9083,'lib_dir', list.files('lib_dir'))