В SparkSQL
1.6 API (scala) Dataframe
есть функции для пересечения и кроме, но не для разницы. Очевидно, что комбинация union и except может использоваться для генерации разности:
df1.except(df2).union(df2.except(df1))
Но это кажется немного неудобным. По моему опыту, если что-то кажется неудобным, есть лучший способ сделать это, особенно в Scala.