title: Join operation on rdds with mutable objects
body: <p>I have a question，in case I have 2 pair RDDs:</p>
  
  <pre><code>RDD1 = RDD[(1,1), (1,2)]
  RDD2 = RDD[(1, obj)]    // obj is an mutable scala object
  </code></pre>
  
  <p><code>RDD1.join(RDD2)</code> operation should get: <code>RDD[(1, (1,obj1)), (1, (2,obj2))]</code></p>
  
  <p>the question is: are <code>obj1</code> and <code>obj2</code> references to the same object? If they are, what happened during this join process? </p>
  
  <p>I used to think that they are two objects deserialized from <code>obj</code>'s serialization result, but today I found that operations on <code>obj1</code> could be reflected in <code>obj2</code>, and I suddenly got confused.</p>
  
  <p>Thanks</p>