It is relatively common to need to load multiple xarray.Dataset objects, e.g., to compare two different models.
This currently can be done by loading data with separate calls to xbeam.DatasetToChunks, and by joining together the result with beam.CoGroupBykey. This works but is rather inefficient, involving an extra write of the data to disk. Ideally we could load the data in a single beam transform instead, e.g., xbeam.DatasetToChunks([ds1, ds2], chunks) would return a PCollection with elements of type tuple[xbeam.Key, tuple[xarray.Dataset, xarray.Dataset]].
CC @alxmrs
It is relatively common to need to load multiple xarray.Dataset objects, e.g., to compare two different models.
This currently can be done by loading data with separate calls to
xbeam.DatasetToChunks, and by joining together the result withbeam.CoGroupBykey. This works but is rather inefficient, involving an extra write of the data to disk. Ideally we could load the data in a single beam transform instead, e.g.,xbeam.DatasetToChunks([ds1, ds2], chunks)would return a PCollection with elements of typetuple[xbeam.Key, tuple[xarray.Dataset, xarray.Dataset]].CC @alxmrs