Доступ к таблице в схеме, отличной от схемы по умолчанию (базы данных) из sparklyr
После того, как мне удалось подключиться к нашему (новому) кластеру, используя sparklyr
с yarn-client
метод, теперь я могу показать только таблицы из схемы по умолчанию. Как я могу подключиться к scheme.table
? С помощью DBI
это работает, например, со следующей строкой:dbGetQuery(sc, "SELECT * FROM scheme.table LIMIT 10")
В HUE я могу показать все таблицы из всех схем.
~ г
2 ответа
Вы можете использовать полное имя для регистрации временного представления:
spark_session(sc) %>%
invoke("table", "my_database.my_table") %>%
invoke("createOrReplaceTempView", "my_view")
tbl(sc, "my_view")
или использовать sql
способ переключения баз данных
spark_session(sc) %>% invoke("sql", "USE my_database")
и получить доступ к таблице напрямую с dplyr:tbl
:
tbl(sc, "my_table")
Вы также можете использовать DBIdbgetQuery
изменить базу данных. Это полезно, поскольку оно также обновит ваше представление в Connections для конкретной базы данных, а не по умолчанию.
DBI::dbGetQuery(sc, "use <database>")
Наконец, вы можете просто сослаться на базу данных в операторе tbl
dplyr::tbl(sc,"want_db.have_data") %>% ...
Другой вариант - использовать tbl_change_db для изменения базы данных по умолчанию для сеанса.
например:
tbl_change_db("other_db")