Utilisation des commandes magiques - Amazon Athena

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.

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.

  • tronquerbool ouint, facultatif : si true, 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.

  • verticalbool, facultatif. Si true, 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.

%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.

%session_id

Récupère l'ID de session en cours.

Utilisation de session_id.

%set_log_level

Définit ou réinitialise l'enregistreur pour qu'il utilise le niveau de journalisation spécifié. Les valeurs admises sont DEBUGERRORFATALINFO 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.

%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.

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.

%matplot

Matplotlib est une bibliothèque complète permettant de créer des visualisations statiques, animées et interactives dans Python. Vous pouvez utiliser la commande magique %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.

Utilisation conjointe des bibliothèques matplotlib et seaborn

Seaborn est une bibliothèque permettant de créer des graphiques statistiques dans Python. Elle s'appuie sur matplotlib et s'intègre étroitement aux structures de données pandas (analyse de données Python). Vous pouvez également utiliser la commande magique %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.

%plotly

Plotly est une bibliothèque graphique open source pour Python que vous pouvez utiliser pour créer des graphiques interactifs. Vous utilisez la commande magique %ploty pour afficher les données Plotly.

L'exemple suivant utilise les bibliothèques StringIO, plotly et pandas sur les données sur les cours des actions pour créer un graphique de l'action entre février et mars 2015.

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.