Соединение ODBC Hive с dbplyr Неверный псевдоним таблицы или ссылка на столбец - PullRequest
0 голосов
/ 14 декабря 2018

Я подключен к Hive с использованием dbplyr и odbc.

Таблица, к которой я хочу подключиться, называется "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 имеет несколько полей, дваиз которых «страна» и «год_месяц».

Это, кажется, работает без каких-либо проблем:

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, оператор):
nanodbc / nanodbc.cpp: 1344: 42000: [Hortonworks] [Hardy] (80) Ошибка синтаксического или семантического анализа, возникшая на сервере при выполнении запроса.Сообщение об ошибке от сервера: Ошибка при компиляции оператора: СБОЙ: SemanticException [Ошибка 10004]: Строка 1: 7 Недопустимый псевдоним таблицы или ссылка на столбец 'zzz1.year_month': (возможные имена столбцов: year_month, country, ...

Похоже, что имя поля year_month теперь каким-то образом zzz1.year_month? Не уверен, что это такое или как его обойти.

Как я могу применить фильтр для страны, затем year_month перед вызовомсобрать на объекте dbplyr?

...