引用spark文档:
(https://spark.apache.org/docs/1.5.2/api/python/pyspark.sql.html?highlight=dataframe%20join#pyspark.sql.DataFrame.join https://spark.apache.org/docs/1.5.2/api/python/pyspark.sql.html?highlight=dataframe%20join#pyspark.sql.DataFrame.join)
join(other, on=None, how=None) 使用另一个 DataFrame 连接
给定连接表达式。
以下在 df1 和 df2 之间执行完整外连接。
参数: other – 连接的右侧 on – 用于连接的字符串
列名、列名列表、连接表达式 (Column) 或
列列表。如果 on 是一个字符串或字符串列表,则指示
连接列的名称,该列必须存在于两侧,
这执行了内部等连接。 how – str,默认“内部”。一
内连接、外连接、左外连接、右外连接、半连接。
>>> df.join(df2, df.name == df2.name, 'outer').select(df.name, df2.height).collect()
[Row(name=None, height=80), Row(name=u'Alice', height=None), Row(name=u'Bob', height=85)]
>>> cond = [df.name == df3.name, df.age == df3.age]
>>> df.join(df3, cond, 'outer').select(df.name, df3.age).collect()
[Row(name=u'Bob', age=5), Row(name=u'Alice', age=2)]
因此,您需要像上一个示例一样使用“条件作为列表”选项。