title: Explode map type column that has another map type inside in spark
body: <p>My dataset schema looks like this</p>
  
  <pre><code>root
   |-- col1: string (nullable = false)
   |-- col2: string (nullable = false)
   |-- col3: timestamp (nullable = false)
   |-- col4: map (nullable = false)
   |    |-- key: string
   |    |-- value: map (valueContainsNull = true)
   |    |    |-- key: integer
   |    |    |-- value: long (valueContainsNull = true)
  </code></pre>
  
  <p><code>col4</code> is a map type, however, inside it, there's another map.</p>
  
  <p>I can use <code>explode(col4)</code> to get </p>
  
  <pre><code>root
   |-- col1: string (nullable = false)
   |-- col2: string (nullable = false)
   |-- col3: timestamp (nullable = false)
   |-- key: string (nullable = false)
   |-- value: map (nullable = true)
   |    |-- key: integer
   |    |-- value: long (valueContainsNull = true)
  </code></pre>
  
  <p>How am I supposed to explode the <code>value</code> column now?</p>
  
  <p>A stupid way would be renaming the <code>key</code> column, and explode the <code>value</code> column again... but I'm trying to do it in a nice way.</p>