火花

2016-02-19 150 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