从sparklyr访问默认方案(数据库)以外的表

时间:2017-05-05 13:35:37

标签: r apache-spark dplyr sparklyr

我使用sparklyr方法管理它以使用yarn-client方法连接到我们的(新)群集后,现在我只能显示默认方案中的表格。如何连接scheme.table? 使用DBI它正在运行,例如使用以下行: dbGetQuery(sc, "SELECT * FROM scheme.table LIMIT 10") 在HUE中,我可以显示所有方案中的所有表格。

〜克

3 个答案:

答案 0 :(得分:3)

您可以使用完全限定名称来注册临时视图:

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")

答案 1 :(得分:0)

您还可以使用DBI的dbgetQuery来更改数据库。这很有用,因为它还会将“连接”中的视图更新为特定的数据库,而不是默认的数据库。

DBI::dbGetQuery(sc, "use <database>")

最后,您只能在tbl语句中引用数据库

dplyr::tbl(sc,"want_db.have_data") %>% ...

答案 2 :(得分:0)

另一种选择是使用tbl_change_db更改会话的默认数据库。

例如:

tbl_change_db("other_db")