#python #dask #dask-ml
#python #dask #dask-ml
Вопрос:
У меня есть набор данных текстовой классификации, в котором я использовал dask parquet для экономии дискового пространства, но теперь столкнулся с проблемой, когда я хочу разделить набор данных на train и протестировать с помощью dask_ml.model_selection.train_test_split
.
ddf = dd.read_parquet('/storage/data/cleaned')
y = ddf['category'].values
X = ddf.drop('category', axis=1).values
train, test = train_test_split(X, y, test_size=0.2)
В результате
TypeError: Cannot operate on Dask array with unknown chunk sizes.
Спасибо за помощь.
Комментарии:
1. Что произойдет, если вы отбросите все
.values
?2. И просто из любопытства, вы сформировали файл parquet из CSV? Если да, я был бы рад услышать, как вы это сделали.
3. @InonPeled вы можете преобразовать csv-файл в parquet с помощью dask, подобного
dd.read_csv('file.csv').repartition(npartitions=10).to_parquet('your_parquet_directory')
. Количество разделов зависит от вас, но рекомендуется иметь размер файла около 100 МБ.
Ответ №1:
Вот что я закончил делать на данный момент:
ddf = dd.read_parquet('/storage/data/cleaned')
ddf = ddf.to_dask_array(lengths=True)
train, test = train_test_split(ddf, test_size=0.2)
Это создаст dask.array некоторой формы dask.array<array, shape=(3937987, 2), dtype=object, chunksize=(49701, 2)>