Использованная литература:
- https://examples.dask.org/applications/forecasting-with-prophet.html?highlight=prophet
- https://facebook.github.io/prophet/
Несколько замечаний:
У меня всего 48 ГБ оперативной памяти
Вот мои версии библиотек, которые я использую
- Python 3.7.7
- dask == 2.18.0
- fbprophet == 0.6
- панды == 1.0.3
Причина, по которой im import pandas предназначена только для этой строки pd.options.mode.chained_assignment = None
Это помогает с ошибками dask, когда im использует dask.distributed
Итак, у меня есть файл csv размером 21 ГБ, который я читаю с помощью записной книжки dask и jupyter ... Я пытался прочитать его из своей таблицы базы данных mysql, однако ядро в конечном итоге вылетает
Я пробовал несколько комбинаций использования моей локальной сети рабочих, потоков и доступной памяти, доступной storage_memory и даже пытался вообще не использовать distributed
. Я также пробовал разбивать на части с пандами (не с упомянутой выше строкой, относящейся к пандам), однако даже при фрагментировании ядро все равно вылетает ...
Теперь я могу загрузить csv с помощью dask и применить несколько преобразований, таких как установка индекса, добавление столбца (имен), который требует fbprophet ... но я все еще не могу вычислить фрейм данных с df.compute()
, потому что вот почему Я думаю, что получаю сообщение об ошибке с fbprophet. После того, как я добавил столбцы y и ds с соответствующими типами dtypes, я получаю сообщение об ошибке Truth of Delayed objects is not supported
, и я думаю, это потому, что fbprophet ожидает, что фрейм данных не будет ленивым, поэтому я пытаюсь запустить вычисление заранее. Я также увеличил барабан на клиенте, чтобы он мог использовать полные 48 ГБ, так как я подозревал, что он может пытаться загрузить данные дважды, однако это все равно не удалось, так что, скорее всего, это не тот случай / не не вызывает проблемы.
Наряду с этим, fbpropphet также упоминается в документации dask для применения машинного обучения к фреймам данных, однако я действительно не понимаю, почему это не работает ... Я также пробовал модифицировать с Ray и с dask, с в основном тот же результат.
Другой вопрос ... относительно использования памяти distributed.worker - WARNING - Memory use is high but worker has no data to store to disk. Perhaps some other process is leaking memory? Process memory: 32.35 GB -- Worker memory limit: 25.00 GB
Я получаю эту ошибку при назначении клиента, чтении файла csv и применении операций / преобразований к фрейму данных, однако выделенный размер больше, чем сам файл csv, поэтому это меня смущает. ..
Что я сделал, чтобы попытаться решить эту проблему сам: - Гугл, конечно, ничего не нашел: - / - Несколько раз запрашивал канал помощи Discord - Несколько раз запрашивал канал справки IIRC
В любом случае, был бы очень признателен за любую помощь по этой проблеме !!! Заранее спасибо :)
MCVE
from dask.distributed import Client
import dask.dataframe as dd
import pandas as pd
from fbprophet import Prophet
pd.options.mode.chained_assignment = None
client = Client(n_workers=2, threads_per_worker=4, processes=False, memory_limit='4GB')
csv_file = 'provide_your_own_csv_file_here.csv'
df = dd.read_csv(csv_file, parse_dates=['Time (UTC)'])
df = df.set_index('Time (UTC)')
df['y'] = df[['a','b']].mean(axis=1)
m = Prophet(daily_seasonality=True)
m.fit(df)
# ERROR: Truth of Delayed objects is not supported
delayed objects are not supported
- person Nubonix   schedule 09.06.2020