title: BatchElements() works on DirectRunner but not in DataflowRunner when a Reshuffle() is added before that
body: <p>In Apache beam, <code>BatchElements()</code> groups elements into batches of a specified size of 100 when running with DirectRunner. But same code on DataflowRunner groups elements into batches of 1. I have <code>Reshuffle()</code> before <code>BatchElements()</code>.</p>
  <p>Without the <code>Reshuffle()</code> it works as expected on both runners.</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>                p
                  | "Read from Pub/Sub" &gt;&gt; io.ReadFromPubSub(subscription=subscription)
                  | "Parse as List" &gt;&gt; Map(lambda element: json.loads(element))
                  | "Flatten" &gt;&gt; FlatMap(lambda elements: elements)
                  | Reshuffle()
                  | "Typed Element" &gt;&gt; ParDo(TypedElement())
                  | "Batch Typed Element"
                  &gt;&gt; BatchElements(
                      min_batch_size=50, max_batch_size=50, target_batch_duration_secs=None
                  )</code></pre>
  </div>
  </div>
  </p>
  <p>Has anybody been in a similar problem? Any suggestions would be very much appreciated! I've been banging my head on this for a few days now.</p>