2014-10-29 39 views
2

我想在scala中編寫一個spark工作,該工作將與Impala打開一個jdbc連接,並讓我創建一個表並執行其他操作。從Spark內部調用Impala/hive並創建表

我該怎麼做?任何例子都會有很大的幫助。 謝謝!

+0

嗨,你做到了嗎?如果是這樣,你可以請分享 – 2016-01-27 12:18:58

回答

13
val JDBCDriver = "com.cloudera.impala.jdbc41.Driver" 
val ConnectionURL = "jdbc:impala://url.server.net:21050/default;auth=noSasl" 

Class.forName(JDBCDriver).newInstance 
val con = DriverManager.getConnection(ConnectionURL) 
val stmt = con.createStatement() 
val rs = stmt.executeQuery(query) 

val resultSetList = Iterator.continually((rs.next(), rs)).takeWhile(_._1).map(r => { 
    getRowFromResultSet(r._2) // (ResultSet) => (spark.sql.Row) 
}).toList 

sc.parallelize(resultSetList) 
+1

真棒感謝偉大的例子!你有沒有關於這將在Python中看起來的任何信息? – alfredox 2016-09-08 20:57:47

+0

很多人都在尋找 – thebluephantom 2017-10-29 21:34:34

+1

表現? @Ian – thebluephantom 2017-10-31 06:29:53