title: PySpark Dataframes: Full Outer Join with a condition
body: <p>I have the following 2 dataframes-</p>
  
  <pre><code>dataframe_a
  +----------------+---------------+
  |         user_id|         domain|
  +----------------+---------------+
  |            josh|     wanadoo.fr|
  |        samantha|     randomn.fr|
  |             bob|    eidsiva.net|
  |           dylan|    vodafone.it|
  +----------------+---------------+
  
  dataframe_b
  +----------------+---------------+
  |         user_id|         domain|
  +----------------+---------------+
  |            josh|  oldwebsite.fr|
  |        samantha|     randomn.fr|
  |           dylan|      oldweb.it|
  |            ryan|      chicks.it|
  +----------------+---------------+
  </code></pre>
  
  <p>I want to do a full outer join but retain the value from the <code>domain</code> column of <code>dataframe_a</code> in cases where I get 2 different domains for a single <code>user_id</code>. So, my desired dataframe would look like-</p>
  
  <pre><code>desired_df
  +----------------+---------------+
  |         user_id|         domain|
  +----------------+---------------+
  |            josh|     wanadoo.fr|
  |        samantha|     randomn.fr|
  |             bob|    eidsiva.net|
  |           dylan|    vodafone.it|
  |            ryan|      chicks.it|
  +----------------+---------------+
  </code></pre>
  
  <p>I think I can do something like-</p>
  
  <pre><code>desired_df = dataframe_a.join(dataframe_b, ["user_id"], how="full_outer").drop(dataframe_b.domain)
  </code></pre>
  
  <p>But I'm worried if this will give me <code>ryan</code> in my desired dataframe or not. Is this the right way?</p>