我试图从rstudio网站复制这个教程
当我将数据加载到hive中时,我可以运行 show tables
或者 select count(*) from airlines
在hive命令行,我将得到正确的响应。但在教程的后面,当我安装 sparklyr
并使用下面的命令连接到数据,rstudio的connections选项卡中不显示任何表。
sc <- spark_connect(master = "yarn-client", config = config, version = '2.4.4')
而且,令人惊讶的是,当我跑的时候 hive_context(sc) %>% invoke('sql', 'show tables') %>% collect()
我找不到table了;就好像spark正在连接到一个不同的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;
它不会显示iris表。
如何让spark连接到hive的“正确”示例?
1条答案
按热度按时间5q4ezhmt1#
您使用的是哪种环境?对于sparkyr1.0.4+,如果运行在hadoop2.6x上,则需要手动设置sparksql目录实现
spark.sql.catalogImplementation: "hive"
.您的代码最终可能会如下所示: