#python #visualization #dask #graphviz
Вопрос:
В Dask я могу визуализировать либо высокоуровневые графики, либо (низкоуровневые) объекты Dask.
df = dask.datasets.timeseries(end='2000-04-01', partition_freq='1m')
df['x'] = df['x'] * 2
Высокоуровневый график
df.dask.visualize()
Низкоуровневый график
df.visualize(size="7")
Вопрос
В этом простом примере легко определить, какие задачи (низкоуровневый график) относятся к какому слою.
В более сложных рабочих процессах низкоуровневый график часто бывает огромным и запутанным. Было бы очень полезно, если бы я мог раскрасить узлы по слою, к которому они принадлежат. В идеале я мог бы также применить ту же раскраску к визуализации графика высокого уровня.
Возможно ли это, и если да, то как?
Попытка решения
Я знаю об color
аргументе обеих визуализаций, но доступные варианты, то есть
layer_type
для высокоуровневого графикаorder
для низкоуровневого графика dask
не позволяйте мне видеть, какая низкоуровневая задача принадлежит какому слою.
Ответ №1:
Например, можно использовать color
кварг:
df.dask.visualize(color='layer_type') # high-level graph
df.visualize(color='order') # low-level graph
# also note that optimize_graph=True is a true representation
# of the order in which tasks are executed
Обратите внимание, что для визуализации заказа можно передать дополнительные параметры, см. Пример в документах.
Комментарии:
1. Спасибо, я знаю об этих вариантах, но, насколько я могу судить, они не решают мою проблему. Извините, я мог бы выразиться яснее по этому поводу, я добавил это к вопросу.
2. Ах, хорошо, документы рекомендуют выбирать определенные части графика низкого уровня (когда это возможно).
3. Не могли бы вы привести мне пример или ссылку на документы, на которые вы ссылаетесь, пожалуйста?
4. смотрите ссылку: «Как обычно в dask.visualize, вам, возможно, потребуется уменьшить проблему до меньшего размера, поэтому мы срежем подмножество данных».