title: typesafe joins in spark for 3.x
body: <p>In old versions of Spark 3.x</p>
  <pre><code>import org.apache.calcite.sql.JoinType
  </code></pre>
  <p>Calcite was exposed.
  That meant a JOIN could not only be executed in a strongly typed fashion for dataframes (notice I do not mean datasets) by feeding: <code>JoinType.LEFT.name</code>.</p>
  <p>Calcite is no longer exposed for 3.x.</p>
  <p>Therefore, currently one would need to fall back to stringly typed join types (which is a bad thing I think).
  Is there a similar possibility for another class I am overlooking (which actually is exposed)?
  I am a bit reluctant to manually add calcite in my user code as this might result in conflicting classes (but it would be a viable option).</p>