火花

2016-02-19 147 views
1

連接兩個dataframes當我試圖將兩個使用火花

DataFrame joindf = dataFrame.join(df, df.col(joinCol)); //.equalTo(dataFrame.col(joinCol))); 

我的程序的數據幀拋出異常下面

org.apache.spark.sql.AnalysisException:加盟條件 字符串的'url'不是布爾值。

這裏joinCol爲url 需要輸入,什麼可能導致這些例外

回答

2

join變體採取的第二個參數Column期望它可以作爲一個布爾表達式進行評估。

如果你想要一個簡單的等值連接基於列名使用a version which takes a column name as a String

String joinCol = "foo"; 
dataFrame.join(df, joinCol); 
0

這也就意味着連接條件應該評估爲表達式。比方說,我們要根據ID加入2個dataframes,所以我們可以做的是:

使用Python:

df1.join(df2, df['id'] == df['id'], 'left') # 3rd parameter is type of join which in this case is left join 


使用Scala:

df1.join(df2, df('id') === df('id')) // create inner join based on id column