Таблица ульев не отображается при использовании Sparklyr - PullRequest
3 голосов
/ 02 декабря 2019

Я пытаюсь скопировать это руководство с веб-сайта RStudio

Когда я загружаю данные в Hive, я могу запустить show tables или select count(*) from airlines в командной строке Hive, и яполучите правильный ответ. Но позже в этом руководстве, когда я устанавливаю sparklyr и использую приведенную ниже команду для подключения к данным, на вкладке Соединения RStudio не отображаются таблицы.

sc <- spark_connect(master = "yarn-client", config = config, version = '2.4.4')

Также, что удивительно, когда я запускаюhive_context(sc) %>% invoke('sql', 'show tables') %>% collect() Я не получаю столы назад;как будто Spark подключается к другому экземпляру Hive.

В данном случае, если я введу следующую команду, чтобы добавить таблицу в базу данных Hive, она отобразится на вкладке Подключения и будетбыть в списке, когда я запускаю show tables как команду SQL.

iris_tbl <- copy_to(sc, iris, "iris", overwrite = TRUE)
hive_context(sc) %>% invoke('sql', 'show tables') %>% collect()
# A tibble: 1 x 3
  database tableName isTemporary
  <chr>    <chr>     <lgl>      
1 NA       iris      TRUE  

Но когда я иду в командную строку Hive через терминал и запускаю show tables;, она не будет отображать таблицу радужной оболочки.

Как я могу сказать Spark подключиться к "правильному" экземпляру Hive?

1 Ответ

3 голосов
/ 02 декабря 2019

Какую среду вы используете? Для sparklyr 1.0.4+ вам нужно вручную установить реализацию каталога sql spark, если вы работаете на hadoop 2.6x. Вы можете попробовать добавить spark.sql.catalogImplementation: "hive".

Ваш код может выглядеть так:

config <- spark_config()
config$spark.sql.catalogImplementation <- "hive"

sc <- spark_cconnect(master="yarn", config=config, version=...)
...