我正在尝试复制this tutorial from RStudio website
当我将数据加载到Hive中时,我可以在Hive命令行中运行show tables
或select count(*) from airlines
,我将获得正确的响应。但是在本教程的后面,当我安装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数据库,它将显示在“连接”选项卡上,并且当我以SQL命令运行show tables
时将列出该表。
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的“正确”实例?
您正在使用哪个环境?对于sparklyr 1.0.4+,如果您在hadoop 2.6x上运行,则需要手动设置spark sql目录实现。您可以尝试添加spark.sql.catalogImplementation: "hive"
。