2017-05-31 42 views
1

我在本地安裝了Apache Hive,並試圖通過Rstudio/sparklyr讀取表。sparklyr看不到在Hive中創建的數據庫,反之亦然

我創建使用蜂巢數據庫:

hive> CREATE DATABASE test; 

,我試圖用下列R-腳本讀取數據庫:

library(sparklyr) 
library(dplyr) 
library(DBI) 

spark_disconnect_all() 

Sys.setenv(SPARK_HOME = "/home/alessandro/spark-2.1.0-bin-hadoop2.7") 

config <- spark_config() 
config$spark.executor.instances <- 4 
config$spark.executor.cores <- 4 
config$spark.executor.memory <- "4G" 
config$spark.sql.hive.metastore <- "/home/alessandro/spark-warehouse" 
config$hive.metastore.warehouse.dir <- "/home/alessandro/spark-warehouse" 
sc <- spark_connect(master="local", config=config, version="2.1.0") 

dbGetQuery(sc, "show databases") 

儘管如此,dbGetQuery(sc, "show databases")不顯示創建的數據庫,並這是因爲數據庫文件夾test.db被正確放置在指定的hive.metastore.warehouse.dir中。

同樣,如果我創建使用dbGetQuery(SC, 「CREATE DATABASE TEST2」)的數據庫,一個數據庫文件夾在hive.metastore.warehouse.dir創建,但通過配置單元使用I無法看到它:

hive> show databases; 

基本上,即使所有數據庫文件夾都放置在正確的路徑中,從Hive中我只能看到通過Hive創建的數據庫,而從RI只能看到通過R創建的數據庫。

回答

1

我解決了添加文件hive- site.xml與配置單元連接的配置:

<property> 
    <name>hive.metastore.uris</name> 
    <value>thrift://localhost:9083</value> 
    </property> 
相關問題