title: Spark Scala Split dataframe into equal number of rows
body: <p>I have a Dataframe and wish to divide it into an equal number of rows.</p>
  
  <p>In other words, I want a list of dataframes where each one is a disjointed subset of the original dataframe. </p>
  
  <p>Let's say the input dataframer is the following:</p>
  
  <pre><code>  +------------------+-----------+-----+--------------------+
    |         eventName|original_dt|count|            features|
    +------------------+-----------+-----+--------------------+
    |15.509775004326936|          0|  100|[15.5097750043269...|
    |15.509775004326936|          0|  101|[15.5097750043269...|
    |15.509775004326936|          0|  102|[15.5097750043269...|
    |15.509775004326936|          0|  103|[15.5097750043269...|
    |15.509775004326936|          0|  104|[15.5097750043269...|
    |15.509775004326936|          0|  105|[15.5097750043269...|
    |15.509775004326936|          0|  106|[15.5097750043269...|
    |15.509775004326936|          0|  107|[15.5097750043269...|
    |15.509775004326936|          0|  108|[15.5097750043269...|
    |15.509775004326936|          0|  109|[15.5097750043269...|
    |15.509775004326936|          0|  110|[15.5097750043269...|
    |15.509775004326936|          0|  111|[15.5097750043269...|
    |15.509775004326936|          0|  112|[15.5097750043269...|
    |15.509775004326936|          0|  113|[15.5097750043269...|
    |15.509775004326936|          0|  114|[15.5097750043269...|
    |15.509775004326936|          0|  115|[15.5097750043269...|
    | 43.01955000865387|          0|  116|[43.0195500086538...|
    +------------------+-----------+-----+--------------------+
  </code></pre>
  
  <p>I wish to split it in K equal sized dataframes. If k = 4, then a possible results would be:</p>
  
  <pre><code>  +------------------+-----------+-----+--------------------+
    |         eventName|original_dt|count|            features|
    +------------------+-----------+-----+--------------------+
    |15.509775004326936|          0|  106|[15.5097750043269...|
    |15.509775004326936|          0|  107|[15.5097750043269...|
    |15.509775004326936|          0|  110|[15.5097750043269...|
    |15.509775004326936|          0|  111|[15.5097750043269...|
    +------------------+-----------+-----+--------------------+
  
    +------------------+-----------+-----+--------------------+
    |         eventName|original_dt|count|            features|
    +------------------+-----------+-----+--------------------+
    |15.509775004326936|          0|  104|[15.5097750043269...|
    |15.509775004326936|          0|  108|[15.5097750043269...|
    |15.509775004326936|          0|  112|[15.5097750043269...|
    |15.509775004326936|          0|  114|[15.5097750043269...|
    +------------------+-----------+-----+--------------------+
  
  
    +------------------+-----------+-----+--------------------+
    |         eventName|original_dt|count|            features|
    +------------------+-----------+-----+--------------------+
    |15.509775004326936|          0|  100|[15.5097750043269...|
    |15.509775004326936|          0|  105|[15.5097750043269...|
    |15.509775004326936|          0|  109|[15.5097750043269...|
    |15.509775004326936|          0|  115|[15.5097750043269...|
    +------------------+-----------+-----+--------------------+
  
  
    +------------------+-----------+-----+--------------------+
    |         eventName|original_dt|count|            features|
    +------------------+-----------+-----+--------------------+
    |15.509775004326936|          0|  101|[15.5097750043269...|
    |15.509775004326936|          0|  102|[15.5097750043269...|
    |15.509775004326936|          0|  103|[15.5097750043269...|
    |15.509775004326936|          0|  113|[15.5097750043269...|
    | 43.01955000865387|          0|  116|[43.0195500086538...|
    +------------------+-----------+-----+--------------------+
  </code></pre>