title: Pyspark SparkSQL: issue with outer join
body: <p>I'm using pyspark and I have this issue with the outer join. Basically, if I use the list of column names as 'ON' condition, the result of the join is a inner join, regardless if I specify the 'outer_left' option. The problem disappear if instead of the list of column names, I specify the full equality (i.e. df1.id == df2.id).</p>
  
  <p>In other words:</p>
  
  <pre><code>testDf = sc.parallelize([['a', 1], ['b', 1]]).toDF(['id', 'val1'])
  testDf2 = sc.parallelize([['a', 2]]).toDF(['id', 'val2'])
  cond = [testDf.id == testDf2.id]
  testDf.join(testDf2, cond, how='left_outer').collect()
  </code></pre>
  
  <p>will return the right left outer join:</p>
  
  <pre><code>[Row(id=u'a', val1=1, id=u'a', val2=2),Row(id=u'b', val1=1, id=None, val2=None)]
  </code></pre>
  
  <p>but if I use</p>
  
  <pre><code>testDf.join(testDf2, 'id', how='left_outer').collect()
  </code></pre>
  
  <p>it will return an inner join</p>
  
  <pre><code>[Row(id=u'a', val1=1, val2=2)]
  </code></pre>
  
  <p>Can you help me understand why?
  Thanks a lot!</p>