与dbplyr的Hive ODBC连接无效的表别名或列引用

时间:2018-12-13 21:28:12

标签: r odbc dbplyr

我使用dbplyr和odbc连接到Hive。

我要连接的表称为“ pros_year_month”:

library(odbc)
library(tidyverse)
library(dbplyr)
con <- dbConnect(odbc::odbc(), "HiveProd")
prosym <- tbl(con, in_schema("my_schema_name", "pros_year_month"))

表pros_year_month有几个字段,其中两个是“国家”和“ year_month”。

这似乎可以正常工作:

pros_nov <- prosym %>% filter(country == "United States") %>% collect()

但这不是:

pros_nov <- prosym %>% filter(year_month = ymd(as.character(paste0(year_month, "01")))) %>% collect()
  

new_result(connection @ ptr,statement)中的错误:
  nanodbc / nanodbc.cpp:1344:42000:[Hortonworks] [Hardy](80)语法或   执行查询时在服务器中引发语义分析错误。错误   来自服务器的消息:编译语句时出错:失败:   SemanticException [错误10004]:第1行:7无效的表别名或   列引用“ zzz1.year_month” :(可能的列名称为:   年_月,国家/地区,...

看起来字段名year_month现在是zzz1.year_month了吗?不知道这是什么或如何解决它。

在调用dbplyr对象的collect之前,如何在year_month之前为国家/地区应用过滤器?

0 个答案:

没有答案