ODBC连接Hive表时dplyr::tbl()报错,求适配新参数
解决dplyr/dbplyr新版本连接Hive表的tbl函数报错问题
针对你遇到的no applicable method for 'tbl' applied to an object of class "Hive"错误,在dplyr 1.1.4、dbplyr 2.4.0版本下,可采用以下几种参数形式读取Hive表:
使用
DBI::Id构造表标识符
通过DBI::Id明确指定schema和表名,再传入tbl函数:con <- DBI::dbConnect(odbc::odbc(), 'MyDataBase') tbl_id <- DBI::Id(schema = 'my_schema', table = 'my_table') db_tbl <- dbplyr::tbl(con, tbl_id)直接传入带schema的表名字符串
若Hive支持.分隔schema和表名,可直接拼接字符串传入:con <- DBI::dbConnect(odbc::odbc(), 'MyDataBase') db_tbl <- dbplyr::tbl(con, 'my_schema.my_table')配合
dbplyr::sql传入SQL语句
通过原生SQL指定表,绕过表标识符匹配问题:con <- DBI::dbConnect(odbc::odbc(), 'MyDataBase') db_tbl <- dplyr::tbl(con, dbplyr::sql('SELECT * FROM my_schema.my_table'))
以上方法的核心是让tbl函数能正确识别Hive连接对应的合法表引用格式,解决新版本中方法匹配失败的问题。
内容的提问来源于stack exchange,提问作者Chriss Paul
相关产品推荐
相关产品推荐

