I'm new to Apache Beam and using the Python SDK. Let's say I have a PCollection with some elements that look like this:
{"item": "foo", "color": "green", "date": "2020-10-30"}
{"item": "bar", "color": "blue", "date": "2020-10-30"}
{"item": "bar", "color": "green", "date": "2020-10-30"}
{"item": "foo", "color": "blue", "date": "2020-10-30"}
If I want to split this into several PCollections based on some element attribute, it seems that I have the choice of Partition or ParDo with tags (and using with_outputs() when the ParDo is invoked).
Are there guidelines when I would use Partition over ParDo? It seems like Partition is meant for splitting a PCollection where the resulting PCollections all have the same schema (link), whereas a ParDo could be used to accomplish that, but is better used for splitting a PCollection into multiple PCollections each with a different schema (link). Am I understanding the documentation correctly?