damccorm opened a new issue, #20442:
URL: https://github.com/apache/beam/issues/20442

   ### Description:
   
   `fileio.WriteToFiles` ignores the option `shards=3` given to its constructor 
unless I set `max_writers_per_bundle` to `0`.
   It reproduces with InteractiveRunner or DirectRunner, but does not reproduce 
with DataflowRunner.
   
   ### Example:
   
   Suppose I have the following pipeline (with interactive runner):
   ```
   
   import apache_beam as beam
   import apache_beam.io.fileio as fileio
   import apache_beam.runners.interactive.interactive_beam
   as ib
   
   user_ids = list(map(lambda x: 'user_id' + str(x), range(0, 10000)))
   with beam.Pipeline(InteractiveRunner())
   as pipeline:
       user_list =  pipeline | 'create pcollection' >> beam.Create(user_ids)
       write_sharded_csv
   = user_list | 'write sharded csv files' >> fileio.WriteToFiles(
               path='/tmp/data/',
     
            shards=3,
               file_naming=fileio.default_file_naming(prefix='userlist', 
suffix='.csv'),
   
              # max_writers_per_bundle=0,
           )
       ib.show(write_sharded_csv)
   
   ```
   
   This pipeline is implemented to...
    - Creates PCollection of strings: 'user_id1', 'user_id2', ... 'user_id10000'
    - Writes the user ids to 3 local files with sharding.
   
   The code does not work as intended. It writes whole user ids to only 1 file.
   The code DOES work as intended after I added the `max_writers_per_bundle=0` 
argument to the `WriteToFiles` constructor.
   The code also works if I use GCP's DataflowRunner instead of 
InteractiveRunner.
   
   Is the behavior intentional or bug?
   I couldn't understand why `max_writers_per_bundle` is related to the 
sharding behavior. I couldn't find any documentation about this.
   
   
   Imported from Jira 
[BEAM-10596](https://issues.apache.org/jira/browse/BEAM-10596). Original Jira 
may contain additional context.
   Reported by: gecko655.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to