We need to batch this up since we can't materialize this all in memory, reducer side we stream data into this from on disk