Understanding SparkSQL and its usage of partitioning
<p>I am trying to evaluate Spark SQL for some data manipulation queries.  The scenario I'm interested in this this: </p>

<pre><code>table1: key, value1, value2
table2: key, value3, value4

create table table3 as
select * from table1 join table2 on table1.key = table2.key
</code></pre>

<p>It sounds like I should be able to create the table1 and table2 RDDs (but I don't see a very obvious example of that in the docs).
But the bigger question is this -- if I have successfully partitioned the 2 table RDDs by key and then go to join them with Spark SQL, will it be smart enough to take advantage of the partitioning?  And if I create a new RDD as a result of that join, will it also be partitioned?  In other words, will it be completely shuffle-free?
I would really appreciate pointers to documentation and or examples on these subjects.</p>