title: Outer join Spark dataframe with non-identical join column and then merge join column
body: <p>Suppose I have the following dataframes in pySpark:</p>
  
  <pre><code>df1 = sqlContext.createDataFrame([Row(name='john', age=50), Row(name='james', age=25)])
  df2 = sqlContext.createDataFrame([Row(name='john', weight=150), Row(name='mike', weight=115)])
  df3 = sqlContext.createDataFrame([Row(name='john', age=50, weight=150), Row(name='james', age=25, weight=None), Row(name='mike', age=None, weight=115)])
  </code></pre>
  
  <p>Now suppose I want to create <code>df3</code> from joining/merging <code>df1</code> and <code>df2</code>.</p>
  
  <p>I tried doing</p>
  
  <pre><code>df1.join(df2, df1.name == df2.name, 'outer')
  </code></pre>
  
  <p>This doesn't quite work exactly because it produces two name columns. I need to then somehow combine the two name columns so that missing names from one name column are filled in by the missing name from the other name column.</p>
  
  <p>How would I do that? Or is there a better way to create <code>df3</code> from <code>df1</code> and <code>df2</code>?</p>