6

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

〜g

4

3 回答 3

6

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

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")
于 2017-05-19T13:24:03.447 回答
0

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

例如:

tbl_change_db("other_db")
于 2019-06-11T15:27:37.963 回答
0

您还可以使用 DBIdbgetQuery来更改数据库。这很有用,因为它还会将您在 Connections 中的视图更新到特定数据库而不是默认数据库。

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

最后,您可以在 tbl 语句中引用数据库

dplyr::tbl(sc,"want_db.have_data") %>% ...
于 2018-09-22T01:13:14.347 回答