hive表

2w2cym1i  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(297)

我试图从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的“正确”示例?

5q4ezhmt

5q4ezhmt1#

您使用的是哪种环境?对于sparkyr1.0.4+,如果运行在hadoop2.6x上,则需要手动设置sparksql目录实现 spark.sql.catalogImplementation: "hive" .
您的代码最终可能会如下所示:

config <- spark_config()
config$spark.sql.catalogImplementation <- "hive"

sc <- spark_cconnect(master="yarn", config=config, version=...)

相关问题