连接两个dataframes当我试图将两个使用火花
DataFrame joindf = dataFrame.join(df, df.col(joinCol)); //.equalTo(dataFrame.col(joinCol)));
我的程序的数据帧抛出异常下面
org.apache.spark.sql.AnalysisException:加盟条件 字符串的'url'不是布尔值。
这里joinCol为url 需要输入,什么可能导致这些例外
连接两个dataframes当我试图将两个使用火花
DataFrame joindf = dataFrame.join(df, df.col(joinCol)); //.equalTo(dataFrame.col(joinCol)));
我的程序的数据帧抛出异常下面
org.apache.spark.sql.AnalysisException:加盟条件 字符串的'url'不是布尔值。
这里joinCol为url 需要输入,什么可能导致这些例外
join
变体采取的第二个参数Column
期望它可以作为一个布尔表达式进行评估。
如果你想要一个简单的等值连接基于列名使用a version which takes a column name as a String
:
String joinCol = "foo";
dataFrame.join(df, joinCol);
这也就意味着连接条件应该评估为表达式。比方说,我们要根据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