Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation des commandes magiques
Les commandes magiques, ou magies, sont des commandes spéciales que vous pouvez exécuter dans une cellule de bloc-notes. Par exemple, %env
affiche les variables d'environnement dans une session de bloc-notes. Athena prend en charge les fonctions magiques d'IPython 6.0.3.
Cette section présente certaines commandes magiques clés d'Athena pour Apache Spark.
-
Pour consulter la liste des commandes magiques d'Athena, exécutez la commande
%lsmagic
dans une cellule de bloc-notes. -
Pour plus d'informations sur l'utilisation des magies pour créer des graphiques dans les blocs-notes Athena, consultez Magies pour créer des graphiques de données.
-
Pour plus d'informations sur les commandes magiques supplémentaires, consultez Commandes magiques intégrées
dans la documentation IPython.
Note
Actuellement, l'exécution de la commande %pip
échoue. Il s'agit d'un problème connu.
Magies cellulaires
Les magies qui sont écrites sur plusieurs lignes sont précédées d'un double signe de pourcentage (%%
) et sont appelées fonctions de magie cellulaire ou magies cellulaires.
%%sql
Cette magie cellulaire permet d'exécuter des instructions SQL directement sans avoir à la décorer avec des instructions SQL Spark. La commande affiche également la sortie en appelant implicitement .show()
sur le cadre de données renvoyé.
![Utilisation de %%sql.](images/notebooks-spark-magics-1.png)
La commande %%sql
tronque automatiquement les sorties de colonne à une largeur de 20 caractères. Actuellement, ce paramètre n'est pas configurable. Pour contourner cette limite, utilisez la syntaxe complète suivante et modifiez les paramètres de la méthode show
en conséquence.
spark.sql("""
YOUR_SQL
""").show(n=number
, truncate=number
, vertical=bool
)
-
n
int
, facultatif. Nombre de lignes à afficher. -
tronquer –
bool
ouint
, facultatif : sitrue
, tronque les chaînes de plus de 20 caractères. Lorsqu'il est défini sur un nombre supérieur à 1, tronque les chaînes longues à la longueur spécifiée et aligne les cellules à droite. -
vertical –
bool
, facultatif. Sitrue
, imprime les lignes de sortie verticalement (une ligne par valeur de colonne).
Magies linéaires
Les magies qui se trouvent sur une seule ligne sont précédées d'un signe de pourcentage (%
) et sont appelées fonctions de magie linéaire ou magies linéaires.
%help
Affiche les descriptions des commandes magiques disponibles.
![Utilisation de %help.](images/notebooks-spark-magics-2.png)
%list_sessions
Répertorie les sessions associées au bloc-notes. Les informations relatives à chaque session incluent l'ID de session, l'état de la session, ainsi que la date et l'heure de début et de fin de la session.
![Utilisation de %list_sessions.](images/notebooks-spark-magics-3.png)
%session_id
Récupère l'ID de session en cours.
![Utilisation de session_id.](images/notebooks-spark-magics-4.png)
%set_log_level
Définit ou réinitialise l'enregistreur pour qu'il utilise le niveau de journalisation spécifié. Les valeurs admises sont DEBUG
, ERROR
, FATAL
, INFO
et WARN
ou WARNING
. Les valeurs doivent être en majuscules et ne doivent pas être entre guillemets simples ou doubles.
![Utilisation de %set_log_level.](images/notebooks-spark-magics-5.png)
%status
Décrit la session en cours. La sortie inclut l'ID de session, l'état de la session, le nom du groupe de travail, la version du moteur PySpark et l'heure de début de session. Cette commande magique nécessite une session active pour récupérer les détails de la session.
Voici les valeurs d'état possibles :
EN COURS DE CRÉATION : la session est en cours de démarrage, y compris l'acquisition de ressources.
CRÉÉE : la session a été démarrée.
INACTIVE : la session est en mesure d'accepter un calcul.
OCCUPÉE : La session est en train de traiter une autre tâche et n'est pas en mesure d'accepter un calcul.
EN COURS D'ARRÊT : la session est en cours d'arrêt.
ARRÊTÉE : la session et ses ressources ne sont plus en cours d'exécution.
DÉGRADÉE : la session ne compte aucun coordinateur sain.
ÉCHEC : en raison d'un échec, la session et ses ressources ne sont plus en cours d'exécution.
![Utilisation de %status.](images/notebooks-spark-magics-6.png)
Magies pour créer des graphiques de données
Les magies linéraires présentées dans cette section sont spécialisés dans le rendu de données pour des types de données particuliers ou en association avec des bibliothèques graphiques.
%table
Vous pouvez utiliser la commande magique %table
pour afficher les données du cadre de données sous forme de table.
L'exemple suivant crée un cadre de données comptant deux colonnes et trois lignes de données, puis affiche les données sous forme de table.
![Utilisation de la commande magique %table.](images/notebooks-spark-magics-graphs-1.png)
%matplot
Matplotlib%matplot
pour créer un graphique après avoir importé la bibliothèque matplotlib dans une cellule de bloc-notes.
L'exemple suivant importe la bibliothèque matplotlib, crée un ensemble de coordonnées x et y, puis utilise la commande magique %matplot
pour créer un graphique des points.
import matplotlib.pyplot as plt x=[3,4,5,6,7,8,9,10,11,12] y= [9,16,25,36,49,64,81,100,121,144] plt.plot(x,y) %matplot plt
![Utilisation de la commande magique %matplot.](images/notebooks-spark-magics-graphs-2.png)
Utilisation conjointe des bibliothèques matplotlib et seaborn
Seaborn%matplot
pour afficher les données Seaborn.
L'exemple suivant utilise à la fois les bibliothèques matplotlib et seaborn pour créer un graphique à barres simple.
import matplotlib.pyplot as plt import seaborn as sns x = ['A', 'B', 'C'] y = [1, 5, 3] sns.barplot(x, y) %matplot plt
![Utilisation de %matplot pour afficher les données Seaborn.](images/notebooks-spark-magics-graphs-3.png)
%plotly
Plotly%ploty
pour afficher les données Plotly.
L'exemple suivant utilise les bibliothèques StringIO
from io import StringIO csvString = """ Date,AAPL.Open,AAPL.High,AAPL.Low,AAPL.Close,AAPL.Volume,AAPL.Adjusted,dn,mavg,up,direction 2015-02-17,127.489998,128.880005,126.919998,127.830002,63152400,122.905254,106.7410523,117.9276669,129.1142814,Increasing 2015-02-18,127.629997,128.779999,127.449997,128.720001,44891700,123.760965,107.842423,118.9403335,130.0382439,Increasing 2015-02-19,128.479996,129.029999,128.330002,128.449997,37362400,123.501363,108.8942449,119.8891668,130.8840887,Decreasing 2015-02-20,128.619995,129.5,128.050003,129.5,48948400,124.510914,109.7854494,120.7635001,131.7415509,Increasing 2015-02-23,130.020004,133,129.660004,133,70974100,127.876074,110.3725162,121.7201668,133.0678174,Increasing 2015-02-24,132.940002,133.600006,131.169998,132.169998,69228100,127.078049,111.0948689,122.6648335,134.2347981,Decreasing 2015-02-25,131.559998,131.600006,128.149994,128.789993,74711700,123.828261,113.2119183,123.6296667,134.0474151,Decreasing 2015-02-26,128.789993,130.869995,126.610001,130.419998,91287500,125.395469,114.1652991,124.2823333,134.3993674,Increasing 2015-02-27,130,130.570007,128.240005,128.460007,62014800,123.510987,114.9668484,124.8426669,134.7184854,Decreasing 2015-03-02,129.25,130.279999,128.300003,129.089996,48096700,124.116706,115.8770904,125.4036668,134.9302432,Decreasing 2015-03-03,128.960007,129.520004,128.089996,129.360001,37816300,124.376308,116.9535132,125.9551669,134.9568205,Increasing 2015-03-04,129.100006,129.559998,128.320007,128.539993,31666300,123.587892,118.0874253,126.4730002,134.8585751,Decreasing 2015-03-05,128.580002,128.75,125.760002,126.410004,56517100,121.539962,119.1048311,126.848667,134.5925029,Decreasing 2015-03-06,128.399994,129.369995,126.260002,126.599998,72842100,121.722637,120.190797,127.2288335,134.26687,Decreasing 2015-03-09,127.959999,129.570007,125.059998,127.139999,88528500,122.241834,121.6289771,127.631167,133.6333568,Decreasing 2015-03-10,126.410004,127.220001,123.800003,124.510002,68856600,119.71316,123.1164763,127.9235004,132.7305246,Decreasing """ csvStringIO = StringIO(csvString) from io import StringIO import plotly.graph_objects as go import pandas as pd from datetime import datetime df = pd.read_csv(csvStringIO) fig = go.Figure(data=[go.Candlestick(x=df['Date'], open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'])]) %plotly fig
![Utilisation de la commande magique %ploty.](images/notebooks-spark-magics-graphs-4.png)