Partager via


Visualiser les données

Azure Synapse est un service d’analytique intégré qui accélère la génération d’insights dans les entrepôts de données et les systèmes d’analytique de Big Data. La visualisation des données est un composant clé qui permet d’obtenir des informations sur vos données. Elle permet de rendre les données, petites et grandes, plus faciles à comprendre pour les êtres humains. Elle facilite également la détection des modèles, des tendances et des valeurs hors norme dans des groupes de données.

Lors de l’utilisation d’Apache Spark dans Azure Synapse Analytics, il existe différentes options intégrées pour vous aider à visualiser vos données, notamment des options de graphique pour notebook Synapse, l’accès aux bibliothèques open source populaires et l’intégration à Synapse SQL et à Power BI.

Options de graphique du notebook

Lorsque vous utilisez un notebook Azure Synapse, vous pouvez transformer votre vue des résultats tabulaires en graphique personnalisé à l’aide des options de graphique. Ici, vous pouvez visualiser vos données sans avoir à écrire de code.

Fonction display(df)

La fonction display vous permet de transformer des requêtes SQL et des DataFrames et des RDD Apache Spark en visualisations de données enrichies. La fonction display peut être utilisée sur des DataFrames ou des RDD créés en PySpark, Scala, Java R et .NET.

Pour accéder aux options de graphique :

  1. La sortie des commandes magic %%sql s’affiche par défaut dans l’affichage Table rendu. Vous pouvez également appeler la commande display(df) sur des DataFrames Spark ou la fonction RDD (Resilient Distributed Datasets) pour produire l’affichage de table rendu.

  2. Une fois que vous disposez d’une vue de table affichée, basculez sur la vue de graphique. built-in-charts

  3. Vous pouvez désormais personnaliser votre visualisation en spécifiant les valeurs suivantes :

    Configuration Description
    Type de graphique La fonction display prend en charge un large éventail de types de graphiques, notamment les graphiques à barres, les nuages de points, les graphiques en courbes, etc.
    Clé Spécifier la plage de valeurs pour l’axe X
    Valeur Spécifier la plage de valeurs pour l’axe Y
    Groupe de séries Utilisé pour déterminer les groupes de l’agrégation
    Agrégation Méthode pour agréger des données dans votre visualisation

    Notes

    Par défaut, la fonction display(df) prend uniquement les 1 000 premières lignes de données pour afficher les graphiques. Vérifiez l’Agrégation par rapport à tous les résultats et cliquez sur le bouton Appliquer, vous allez appliquer la génération de graphique depuis le jeu de données complet. Un travail Spark est déclenché lorsque le paramètre du graphique change. Notez que l’exécution du calcul et l’affichage du graphique peuvent prendre plusieurs minutes.

  4. Une fois l’opération terminée, vous pouvez afficher et interagir avec votre visualisation finale.

Détails des statistiques de display(df)

Vous pouvez utiliser display(df, summary = true) pour vérifier le résumé des statistiques d’un DataFrame Apache Spark donné qui inclut le nom de colonne, le type de colonne, les valeurs uniques et les valeurs manquantes pour chaque colonne. Vous pouvez également sélectionner une colonne spécifique pour afficher ses valeurs minimale, maximale et moyenne, ainsi que son écart type. built-in-charts-summary

displayHTML() option

Les notebooks Azure Synapse Analytics prennent en charge les graphiques HTML à l’aide de la fonction displayHTML.

L’image suivante est un exemple de création de visualisations à l’aide de D3.js.

d3-js-example

Exécutez le code suivant pour créer la visualisation ci-dessus.

displayHTML("""<!DOCTYPE html>
<meta charset="utf-8">

<!-- Load d3.js -->
<script src="https://d3js.org/d3.v4.js"></script>

<!-- Create a div where the graph will take place -->
<div id="my_dataviz"></div>
<script>

// set the dimensions and margins of the graph
var margin = {top: 10, right: 30, bottom: 30, left: 40},
  width = 400 - margin.left - margin.right,
  height = 400 - margin.top - margin.bottom;

// append the svg object to the body of the page
var svg = d3.select("#my_dataviz")
.append("svg")
  .attr("width", width + margin.left + margin.right)
  .attr("height", height + margin.top + margin.bottom)
.append("g")
  .attr("transform",
        "translate(" + margin.left + "," + margin.top + ")");

// Create Data
var data = [12,19,11,13,12,22,13,4,15,16,18,19,20,12,11,9]

// Compute summary statistics used for the box:
var data_sorted = data.sort(d3.ascending)
var q1 = d3.quantile(data_sorted, .25)
var median = d3.quantile(data_sorted, .5)
var q3 = d3.quantile(data_sorted, .75)
var interQuantileRange = q3 - q1
var min = q1 - 1.5 * interQuantileRange
var max = q1 + 1.5 * interQuantileRange

// Show the Y scale
var y = d3.scaleLinear()
  .domain([0,24])
  .range([height, 0]);
svg.call(d3.axisLeft(y))

// a few features for the box
var center = 200
var width = 100

// Show the main vertical line
svg
.append("line")
  .attr("x1", center)
  .attr("x2", center)
  .attr("y1", y(min) )
  .attr("y2", y(max) )
  .attr("stroke", "black")

// Show the box
svg
.append("rect")
  .attr("x", center - width/2)
  .attr("y", y(q3) )
  .attr("height", (y(q1)-y(q3)) )
  .attr("width", width )
  .attr("stroke", "black")
  .style("fill", "#69b3a2")

// show median, min and max horizontal lines
svg
.selectAll("toto")
.data([min, median, max])
.enter()
.append("line")
  .attr("x1", center-width/2)
  .attr("x2", center+width/2)
  .attr("y1", function(d){ return(y(d))} )
  .attr("y2", function(d){ return(y(d))} )
  .attr("stroke", "black")
</script>

"""
)

Bibliothèques Python

Lorsqu’il s’agit de la visualisation des données, Python propose plusieurs bibliothèques de graphisme qui sont dotées de nombreuses fonctionnalités différentes. Par défaut, chaque pool Apache Spark dans Azure Synapse Analytics contient un ensemble de bibliothèques open source organisées et populaires. Vous pouvez également ajouter ou gérer des bibliothèques et des versions supplémentaires en utilisant les capacités de gestion de bibliothèque d’Azure Synapse Analytics.

Matplotlib

Vous pouvez restituer des bibliothèques de traçage standard, comme Matplotlib, en utilisant les fonctions de rendu intégrées pour chaque bibliothèque.

L’image suivante est un exemple de création d’un graphique à barres à l’aide de Matplotlib. Line graph example.

Exécutez l’exemple de code suivant pour dessiner l’image ci-dessus.

# Bar chart

import matplotlib.pyplot as plt

x1 = [1, 3, 4, 5, 6, 7, 9]
y1 = [4, 7, 2, 4, 7, 8, 3]

x2 = [2, 4, 6, 8, 10]
y2 = [5, 6, 2, 6, 2]

plt.bar(x1, y1, label="Blue Bar", color='b')
plt.bar(x2, y2, label="Green Bar", color='g')
plt.plot()

plt.xlabel("bar number")
plt.ylabel("bar height")
plt.title("Bar Chart Example")
plt.legend()
plt.show()

Bokeh

Vous pouvez afficher des bibliothèques HTML ou interactives, telle bokeh, en utilisant la commande displayHTML(df) .

L’image suivante est un exemple de traçage de glyphes sur une carte en utilisant bokeh.

bokeh-example

Exécutez l’exemple de code suivant pour dessiner l’image ci-dessus.

from bokeh.plotting import figure, output_file
from bokeh.tile_providers import get_provider, Vendors
from bokeh.embed import file_html
from bokeh.resources import CDN
from bokeh.models import ColumnDataSource

tile_provider = get_provider(Vendors.CARTODBPOSITRON)

# range bounds supplied in web mercator coordinates
p = figure(x_range=(-9000000,-8000000), y_range=(4000000,5000000),
           x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(tile_provider)

# plot datapoints on the map
source = ColumnDataSource(
    data=dict(x=[ -8800000, -8500000 , -8800000],
              y=[4200000, 4500000, 4900000])
)

p.circle(x="x", y="y", size=15, fill_color="blue", fill_alpha=0.8, source=source)

# create an html document that embeds the Bokeh plot
html = file_html(p, CDN, "my plot1")

# display this html
displayHTML(html)

Plotly

Vous pouvez afficher des bibliothèques HTML ou interactives, comme Plotly, en utilisant la commande displayHTML() .

Exécutez l’exemple de code suivant pour dessiner l’image ci-dessous.

plotly-example

from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                   dtype={"fips": str})

import plotly
import plotly.express as px

fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
                           color_continuous_scale="Viridis",
                           range_color=(0, 12),
                           scope="usa",
                           labels={'unemp':'unemployment rate'}
                          )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

# create an html document that embeds the Plotly plot
h = plotly.offline.plot(fig, output_type='div')

# display this html
displayHTML(h)

Pandas

Vous pouvez afficher la sortie HTML de tramedonnées Pandas en tant que sortie par défaut. Le bloc-notes va automatiquement afficher le contenu HTML stylisé.

Panda graph example.

import pandas as pd 
import numpy as np 

df = pd.DataFrame([[38.0, 2.0, 18.0, 22.0, 21, np.nan],[19, 439, 6, 452, 226,232]], 

                  index=pd.Index(['Tumour (Positive)', 'Non-Tumour (Negative)'], name='Actual Label:'), 

                  columns=pd.MultiIndex.from_product([['Decision Tree', 'Regression', 'Random'],['Tumour', 'Non-Tumour']], names=['Model:', 'Predicted:'])) 

df 

Bibliothèques supplémentaires

Au-delà de ces bibliothèques, le runtime Azure Synapse Analytics comprend également l’ensemble suivant de bibliothèques qui sont souvent utilisées pour la visualisation de données :

Vous pouvez consulter la documentation du runtime Azure Synapse Analytics pour obtenir les informations les plus récentes sur les bibliothèques et versions disponibles.

Bibliothèques R (préversion)

L’écosystème R offre plusieurs bibliothèques de graphiques qui sont fournies avec de nombreuses fonctionnalités différentes. Par défaut, chaque pool Apache Spark dans Azure Synapse Analytics contient un ensemble de bibliothèques open source organisées et populaires. Vous pouvez également ajouter ou gérer des bibliothèques et des versions supplémentaires en utilisant les capacités de gestion de bibliothèque d’Azure Synapse Analytics.

ggplot2

La bibliothèque ggplot2 est très utilisée pour la visualisation des données et l’analyse exploratoire des données.

Screenshot of a ggplot2 graph example.

library(ggplot2)
data(mpg, package="ggplot2") 
theme_set(theme_bw()) 

g <- ggplot(mpg, aes(cty, hwy))

# Scatterplot
g + geom_point() + 
  geom_smooth(method="lm", se=F) +
  labs(subtitle="mpg: city vs highway mileage", 
       y="hwy", 
       x="cty", 
       title="Scatterplot with overlapping points", 
       caption="Source: midwest")

rBokeh

rBokeh est une bibliothèque de traçage de graphiques R native pour créer des graphiques interactifs qui s’appuient sur la bibliothèque de visualisation Bokeh.

Pour installer rBokeh, vous pouvez utiliser la commande suivante :

install.packages("rbokeh")

Une fois qu’il est installé, vous pouvez tirer parti de rBokeh pour créer des visualisations interactives.

Screenshot of a rBokeh graph example.

library(rbokeh)
p <- figure() %>%
  ly_points(Sepal.Length, Sepal.Width, data = iris,
    color = Species, glyph = Species,
    hover = list(Sepal.Length, Sepal.Width))

R Plotly

La bibliothèque de graphiques R de Plotly produit des graphiques interactifs d’une qualité appropriée à la publication.

Pour installer Plotly, vous pouvez utiliser la commande suivante :

install.packages("plotly")

Une fois qu’elle est installée, vous pouvez tirer parti de Plotly pour créer des visualisations interactives.

Screenshot of a Plotly graph example.

library(plotly) 

fig <- plot_ly() %>% 
  add_lines(x = c("a","b","c"), y = c(1,3,2))%>% 
  layout(title="sample figure", xaxis = list(title = 'x'), yaxis = list(title = 'y'), plot_bgcolor = "#c7daec") 

fig

Highcharter

Highcharter est un wrapper R pour la bibliothèque JavaScript Highcharts et ses modules.

Pour installer Highcharter, vous pouvez utiliser la commande suivante :

install.packages("highcharter")

Une fois qu’il est installé, vous pouvez tirer parti de Highcharter pour créer des visualisations interactives.

Screenshot of a Highcharter graph example.

library(magrittr)
library(highcharter)
hchart(mtcars, "scatter", hcaes(wt, mpg, z = drat, color = hp)) %>%
  hc_title(text = "Scatter chart with size and color")

Se connecter à Power BI à l’aide d’Apache Spark et du SQL à la demande

Azure Synapse Analytics s’intègre parfaitement à Power BI, permettant aux ingénieurs de données de créer des solutions d’analytique.

Azure Synapse Analytics permet aux différents moteurs de calcul d’espace de travail de partager des bases de données et des tables entre ses pools Spark et le pool SQL serverless. À l’aide du modèle de métadonnées partagées, vous pouvez interroger vos tables Apache Spark à l’aide du SQL à la demande. Une fois que vous avez terminé, vous pouvez connecter votre point de terminaison SQL à la demande à Power BI pour interroger facilement vos tables Spark synchronisées.

Étapes suivantes