title: Join PySpark SQL DataFrames that are already partitioned in a subset of the keys
body: <p>I want to join 2 Spark DataFrames that is already partitioned in a subset of the keys I use to join. But when I do it, <em>Exchange</em> operations still occur anyway. How can I join them without <em>Exchange</em> or <em>Broadcast</em>.</p>
  <p>For example, I have DataFrame <em>df1</em> and <em>df2</em>. They both have the same columns that are <em>col1</em>, <em>col2</em>, <em>col3</em>. And they both have already been partitioned using <em>col1</em>. I want to join them using <em>col1</em> and <em>col2</em>. But when I do it, It get repartitioned again using <em>col1</em> and <em>col2</em>.</p>