Так dask.dataframe.map_partitions()
принимает аргумент func
и meta
kwarg. Как именно он определяет свой тип возврата? В качестве примера:Python Dask - dataframe.map_partitions() возвращаемое значение
Много csv's в ... \ some_folder.
ddf = dd.read_csv(r"...\some_folder\*", usecols=['ColA', 'ColB'],
blocksize=None,
dtype={'ColA': np.float32, 'ColB': np.float32})
example_func = lambda x: x.iloc[-1]/len(x)
metaResult = pd.Series({'ColA': .1234, 'ColB': .1234})
result = ddf.map_partitions(example_func, meta=metaResult).compute()
Я довольно новый для «распределенного» вычисления, но я бы интуитивно ожидать, что это возвращает коллекцию (список или словарь, скорее всего) объектов серии, но результат является серией объекта, который может считаться конкатенацией результатов example_func на каждом разделе. Это само по себе также было бы достаточно, если бы эта серия имела MultiIndex для обозначения метки раздела.
Из того, что я могу сказать от this question, то docs и the source code itself, это потому, что ddf.divisions
возвратит (None, None, ..., None)
в результате чтения CSV-? Есть ли способ, используемый на основе dask, для этого, или мне нужно вручную войти и сломать возвращенную серию (конкатенацию серии, которая была возвращена example_func
на каждый раздел) сама?
Также не стесняйтесь исправить мои предположения/практики здесь, так как я новичок в dask.
Столбец индикатора ... duh! Принято. – StarFox