2016-08-04 78 views
1

我是spark中的新成員,並嘗試使用HortonWorks Sandbox在tpcds基準表上運行一些查詢。 http://www.tpc.org/tpcds/ 在沙箱上通過shell或配置單元查看使用配置單元時沒有問題。問題是我不知道如何連接到數據庫,如果我想使用火花。 如何在Spark中使用配置單元數據庫來運行查詢? 我直到現在才知道的唯一解決方案是手動重建每個表,並使用下面的scala代碼加載數據,這不是最好的解決方案。在spark中使用hive數據庫

scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 
scala> sqlContext.sql("CREATE TABLE IF NOT EXISTS employee(id INT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'") 
scala> sqlContext.sql("LOAD DATA LOCAL INPATH 'employee.txt' INTO TABLE employee") 
scala> val result = sqlContext.sql("FROM employe SELECT id, name, age") 
scala> result.show() 

我也讀了一些關於蜂房的site.xml,但我不知道在哪裏可以找到它,並就它什麼樣的變化,以連接到數據庫。

+0

蜂巢網站(和其他配置文件)是在安裝Hadoop二進制文件的地方 –

+0

如果您正在使用沙箱,那麼您需要的所有東西都應該在這裏回答。最後幾個命令從現有的Hive表中查詢http://hortonworks.com/hadoop-tutorial/using-hive-with-orc-from-apache-spark/ –

回答

2

使用Spark和HiveContext時,不需要連接到特定的數據庫。

您只需將「hive-site.xml」文件複製到Spark conf文件夾(或者也可以創建符號鏈接)。

cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf/ 

然後,在星火你可以做這樣的事情(我不是一個階用戶,這樣的語法可能是錯誤的):

val hc = new org.apache.spark.sql.hive.HiveContext(sc) 
val result = hc.sql("SELECT col1, col2, col3 FROM dbname.tablename") 
result.show() 
相關問題