TLDR; xarray не имеет конструктора from итератора. Вы должны будете сами строить свои dask массивы.
Кроме того, xarray не имеет метода to_parquet
, поэтому вы не можете выполнять эту операцию (на данный момент).
Вот пример того, как вы можете создать массив dask (и xarray.DataArray
) для вашего варианта использования:
import dask.array
import xarray as xr
import numpy as np
num = 10
names = []
arrays = []
for i in range(num):
names.append('V'+str(i))
arrays.append(dask.array.random.random(10000, chunks=(1000,)))
da = xr.DataArray(data, dims=('model', 'sample'), coords={'model': names})
print(da)
Уступая:
<xarray.DataArray 'stack-ff07239b7ea24834ba59f2d05b7f41e2' (model: 10,
sample: 10000)>
dask.array<shape=(10, 10000), dtype=float64, chunksize=(1, 1000)>
Coordinates:
* model (model) <U2 'V0' 'V1' 'V2' 'V3' 'V4' 'V5' 'V6' 'V7' 'V8' 'V9'
Dimensions without coordinates: sample
Это вряд ли будет эффективным, особенно когда длина итератора становится большой (как в вашем примере). Возможно, стоит предложить такой конструктор на странице вопросов dask github.