我使用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之前为国家/地区应用过滤器?