web-dev-qa-db-fra.com

Comment faire pour que matplotlib fonctionne dans le bloc-notes Jupyter AWS EMR?

C'est très proche de cette question, mais j'ai ajouté quelques détails spécifiques à ma question:

Matplotlib Plotting utilisant le bloc-notes jupyter AWS-EMR

Je voudrais trouver un moyen d'utiliser matplotlib dans mon carnet Jupyter. Voici l'extrait de code par erreur, c'est assez simple:

cahier

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

J'ai choisi cet extrait car cette ligne échoue à elle seule car elle essaie d'utiliser TKinter (qui n'est pas installé sur un cluster AWS EMR):

import matplotlib.pyplot as plt

Lorsque j'exécute l'extrait de bloc-notes complet, le résultat n'est pas une erreur d'exécution, mais rien ne se produit également (aucun graphique n'est affiché.) Ma compréhension d'une façon dont cela peut fonctionner consiste à ajouter l'un des extraits suivants:

notation magique pyspark

%matplotlib inline

résultats

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

Appel magique explicite IPython

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

résultats

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

à mon cahier qui appelle une commande spark magic qui inline les tracés matplotlib (du moins c'est mon interprétation.) J'ai essayé les deux après avoir utilisé une action bootstrap :

Bootstrap EMR

Sudo pip install matplotlib
Sudo pip install ipython

Même avec ces ajouts, j'obtiens toujours une erreur qu'il n'y a pas de magie pour matplotlib. Donc ma question est définitivement:

Question

Comment faire fonctionner matplotlib dans un ordinateur portable AWS EMR Jupyter?

(Ou comment afficher des graphiques et tracer des images dans le bloc-notes AWS EMR Jupyter?)

17
Matt

Comme vous l'avez mentionné, matplotlib n'est pas installé sur le cluster EMR, donc une telle erreur se produira:

error

Cependant, il est réellement disponible dans l'instance de bloc-notes Jupyter géré (le conteneur Docker). En utilisant le %%local magic vous permettra d'exécuter la cellule localement:

local

6
Foxan Ng

Les éléments suivants devraient fonctionner:

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

Exécutez le script entier dans une cellule

La réponse de @ 00schneider fonctionne réellement.

import matplotlib.pyplot as plt

# plot data here
plt.show()

après

plt.show ()

réexécutez la cellule magique qui contient ce qui suit, et vous verrez un graphique sur votre ordinateur portable AWS EMR Jupyter PySpark

%matplot plt
0
Madaditya

Importer matplotlib sous

import matplotlib.pyplot as plt

et utilisez la commande magique %matplot plt à la place, comme indiqué dans le didacticiel ici: https://aws.Amazon.com/de/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr- cahiers /

0
00schneider