2017-07-25 70 views
1

我試圖運行一個查詢,查詢Oracle數據庫與加入使用sqlcontext一樣,執行SQL JOIN使用sqlcontext火花

val sql="select a from b,c where b.join=c.join" 
val dataframe = sqlcontext.read.jdbc(url,sql,connection_properties) 

我得到無效的表名錯誤。 但是,如果我嘗試像下面查詢表,它工作正常。

val df1 = sqlcontext.read.jdbc(url,"b",connection_properties) 
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties) 

將它不可能運行加入使用sqlcontext查詢。

回答

2

這是你需要做的,創建從表,有兩個dataframes如下

val df1 = sqlcontext.read.jdbc(url,"b",connection_properties) 
val df2 = sqlcontext.read.jdbc(url,"c",connection_properties) 

和連接兩個dataframes你想加入

df1.join(df2, <join condition>, <which join>) 

//example 
df1.join(df2, df1($"id") === df2($"id"), "left") 

的關鍵是什麼,我認爲這是一個更好的選擇,據我所知

希望這有助於!