Как мне заставить matplotlib работать в ноутбуке AWS EMR Jupyter? - PullRequest
14 голосов
/ 23 мая 2019

Это очень близко к этому вопросу, но я добавил несколько деталей, специфичных для моего вопроса:

Нанесение Matplotlib с использованием ноутбука AWS-EMR jupyter

Я бы хотел найти способ использовать matplotlib внутри моего ноутбука Jupyter. Вот фрагмент кода по ошибке, он довольно прост:

ноутбук

import matplotlib
matplotlib.use("agg")
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

Я выбрал этот фрагмент, потому что одна эта строка дает сбой при попытке использовать TKinter (который не установлен в кластере AWS EMR):

import matplotlib.pyplot as plt

Когда я запускаю полный фрагмент записной книжки, в результате не возникает ошибки времени выполнения, но также ничего не происходит (график не отображается). Я понимаю, как это может работать, добавив один из следующих фрагментов:

волшебная запись pyspark

%matplotlib inline

Результаты

unknown magic command 'matplotlib'
UnknownMagic: unknown magic command 'matplotlib'

явный магический вызов IPython

from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')

Результаты

'NoneType' object has no attribute 'run_line_magic'
Traceback (most recent call last):
AttributeError: 'NoneType' object has no attribute 'run_line_magic'

в мою записную книжку, которая вызывает команду «Волшебная искра», которая отображает графики matplotlib (по крайней мере, это моя интерпретация). Я попробовал оба из них после использования действия начальной загрузки:

EMR начальная загрузка

sudo pip install matplotlib
sudo pip install ipython

Даже с учетом этого, я все еще получаю сообщение об ошибке, что нет волшебства для matplotlib. Так что мой вопрос определенно:

Вопрос

Как мне заставить matplotlib работать в ноутбуке AWS EMR Jupyter?

(или как просмотреть графики и графические изображения в блокноте AWS EMR Jupyter?)

Ответы [ 2 ]

5 голосов
/ 23 мая 2019

Как вы упомянули, matplotlib не установлен в кластере EMR, поэтому возникнет такая ошибка:

error

Однако на самом деле этодоступно в управляемом экземпляре блокнота Jupyter (контейнер докера).Использование магии %%local позволит вам управлять ячейкой локально:

local

3 голосов
/ 23 мая 2019

Должно работать следующее:

import matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])

Запустить весь скрипт в одной ячейке

...