Visualizzare i dati
Azure Synapse è un servizio di analisi integrato che accelera il tempo per ottenere informazioni dettagliate, tra data warehouse e sistemi di analisi di Big Data. La visualizzazione dei dati è un componente chiave per ottenere informazioni dettagliate sui dati. Consente di semplificare la comprensione dei dati di grandi dimensioni e di piccole dimensioni per gli esseri umani. Semplifica anche il rilevamento di modelli, tendenze e outlier in gruppi di dati.
Quando si usa Apache Spark in Azure Synapse Analytics, sono disponibili varie opzioni predefinite per visualizzare i dati, tra cui le opzioni del grafico dei notebook di Synapse, l'accesso alle librerie open source più diffuse e l'integrazione con Synapse SQL e Power BI.
Opzioni del grafico dei notebook
Quando si usa un notebook di Azure Synapse, è possibile trasformare la visualizzazione dei risultati tabulari in un grafico personalizzato usando le opzioni del grafico. Qui è possibile visualizzare i dati senza dover scrivere codice.
funzione display(df)
La display
funzione consente di trasformare query SQL e dataframe apache Spark e RDD in visualizzazioni di dati avanzate. La display
funzione può essere usata in dataframe o RDD creati in PySpark, Scala, Java, R e .NET.
Per accedere alle opzioni del grafico:
L'output dei
%%sql
comandi magic viene visualizzato nella visualizzazione tabella di cui è stato eseguito il rendering per impostazione predefinita. È anche possibile chiamaredisplay(df)
sulla funzione Spark DataFrames o Resilient Distributed Datasets (RDD) per produrre la vista tabella di cui è stato eseguito il rendering.Dopo aver eseguito il rendering di una vista tabella, passare alla visualizzazione Grafico.
È ora possibile personalizzare la visualizzazione specificando i valori seguenti:
Impostazione Descrizione Tipo di grafico La display
funzione supporta un'ampia gamma di tipi di grafico, tra cui grafici a barre, grafici a dispersione, grafici a linee e altro ancoraKey Specificare l'intervallo di valori per l'asse x Valore Specificare l'intervallo di valori per i valori dell'asse y Series Group Usato per determinare i gruppi per l'aggregazione Aggregazione Metodo per aggregare i dati nella visualizzazione Nota
Per impostazione predefinita, la
display(df)
funzione accetta solo le prime 1000 righe dei dati per il rendering dei grafici. Controllare l'aggregazione su tutti i risultati e fare clic sul pulsante Applica per applicare la generazione del grafico dall'intero set di dati. Un processo Spark verrà attivato quando cambia l'impostazione del grafico. Si noti che potrebbero essere necessari alcuni minuti per completare il calcolo ed eseguire il rendering del grafico.Al termine, è possibile visualizzare e interagire con la visualizzazione finale.
dettagli delle statistiche display(df)
È possibile usare display(df, summary = true)
per controllare il riepilogo delle statistiche di un dataframe apache Spark che include il nome della colonna, il tipo di colonna, i valori univoci e i valori mancanti per ogni colonna. È anche possibile selezionare una colonna specifica per visualizzare il valore minimo, il valore massimo, il valore medio e la deviazione standard.
opzione displayHTML()
I notebook di Azure Synapse Analytics supportano la grafica HTML usando la displayHTML
funzione .
L'immagine seguente è un esempio di creazione di visualizzazioni con D3.js.
Eseguire il codice seguente per creare la visualizzazione precedente.
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>
"""
)
Librerie Python
Quando si tratta di visualizzazione dei dati, Python offre più librerie di gragrafi che sono dotate di molte funzionalità diverse. Per impostazione predefinita, ogni pool di Apache Spark in Azure Synapse Analytics contiene un set di librerie open source curate e diffuse. È anche possibile aggiungere o gestire altre librerie e versioni usando le funzionalità di gestione delle librerie di Azure Synapse Analytics.
Matplotlib
È possibile eseguire il rendering delle librerie di tracciatura standard, ad esempio Matplotlib, usando le funzioni di rendering predefinite per ogni libreria.
L'immagine seguente è un esempio di creazione di un grafico a barre con Matplotlib.
Eseguire questo codice di esempio per disegnare l'immagine precedente.
# 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
È possibile eseguire il rendering di librerie HTML o interattive, ad esempio bokeh, usando .displayHTML(df)
L'immagine seguente è un esempio di glifi tracciati su una mappa che usa bokeh.
Eseguire questo codice di esempio per disegnare l'immagine precedente.
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
È possibile eseguire il rendering di librerie HTML o interattive, ad esempio Plotly, usando displayHTML().
Eseguire il codice di esempio seguente per disegnare l'immagine seguente.
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
È possibile visualizzare l'output HTML del dataframe pandas come output predefinito, il notebook mostrerà automaticamente il contenuto HTML in stile.
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
Librerie aggiuntive
Oltre a queste librerie, il runtime di Azure Synapse Analytics include anche il set di librerie che vengono spesso usate per la visualizzazione dei dati:
È possibile visitare la documentazione del runtime di Azure Synapse Analytics per informazioni aggiornate sulle librerie e le versioni disponibili.
Librerie R (anteprima)
L'ecosistema R offre più librerie di grafici che sono dotate di molte funzionalità diverse. Per impostazione predefinita, ogni pool di Apache Spark in Azure Synapse Analytics contiene un set di librerie open source curate e diffuse. È anche possibile aggiungere o gestire altre librerie e versioni usando le funzionalità di gestione delle librerie di Azure Synapse Analytics.
ggplot2
La libreria ggplot2 è molto diffusa per la visualizzazione dei dati e l'analisi esplorativa dei dati.
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 è una libreria di tracciamento R nativa per la creazione di grafica interattiva supportata dalla libreria di visualizzazioni Bokeh.
Per installare rBokeh, è possibile usare il comando seguente:
install.packages("rbokeh")
Dopo l'installazione, è possibile sfruttare rBokeh per creare visualizzazioni interattive.
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 libreria di grafici R di Plotly rende grafici interattivi di qualità della pubblicazione.
Per installare Plotly, è possibile usare il comando seguente:
install.packages("plotly")
Dopo l'installazione, è possibile sfruttare Plotly per creare visualizzazioni interattive.
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 è un wrapper R per la libreria JavaScript highcharts e i relativi moduli.
Per installare Highcharter, è possibile usare il comando seguente:
install.packages("highcharter")
Dopo l'installazione, è possibile sfruttare Highcharter per creare visualizzazioni interattive.
library(magrittr)
library(highcharter)
hchart(mtcars, "scatter", hcaes(wt, mpg, z = drat, color = hp)) %>%
hc_title(text = "Scatter chart with size and color")
Connessione a Power BI con Apache Spark & SQL su richiesta
Azure Synapse Analytics si integra in modo approfondito con Power BI, consentendo ai data engineer di creare soluzioni di analisi.
Azure Synapse Analytics consente ai diversi motori di calcolo dell'area di lavoro di condividere database e tabelle tra i pool di Spark e il pool SQL serverless. Usando il modello di metadati condiviso, è possibile eseguire query sulle tabelle di Apache Spark usando SQL su richiesta. Al termine, è possibile connettere l'endpoint SQL su richiesta a Power BI per eseguire facilmente query sulle tabelle Spark sincronizzate.
Passaggi successivi
- Per altre informazioni su come configurare il connettore Spark SQL DW Connessione or: Synapse SQL
- Visualizzare le librerie predefinite: runtime di Azure Synapse Analytics