Visualisieren von Daten

Azure Synapse ist ein integrierter Analysedienst, der Zeit für Einblicke in Data Warehouses und Big Data Analytics-Systeme beschleunigt. Die Datenvisualisierung ist eine wichtige Komponente, um Einblicke in Ihre Daten zu erhalten. Es hilft, große und kleine Daten für Menschen leichter verständlich zu machen. Außerdem ist es einfacher, Muster, Trends und Ausreißer in Datengruppen zu erkennen.

Bei der Verwendung von Apache Spark in Azure Synapse Analytics gibt es verschiedene integrierte Optionen, mit denen Sie Ihre Daten visualisieren können, einschließlich Synapse-Notizbuchdiagrammoptionen, Zugriff auf beliebte Open-Source-Bibliotheken und Integration in Synapse SQL und Power BI.

Optionen für Notizbuchdiagramme

Wenn Sie ein Azure Synapse-Notizbuch verwenden, können Sie die Tabellenergebnisansicht mithilfe von Diagrammoptionen in ein angepasstes Diagramm umwandeln. Hier können Sie Ihre Daten visualisieren, ohne Code schreiben zu müssen.

display(df)-Funktion

Mit der display Funktion können Sie SQL-Abfragen und Apache Spark-Datenframes und RDDs in umfangreiche Datenvisualisierungen umwandeln. Die display Funktion kann für Datenframes oder RDDs verwendet werden, die in PySpark, Scala, Java, R und .NET erstellt wurden.

So greifen Sie auf die Diagrammoptionen zu:

  1. Die Ausgabe von %%sql magischen Befehlen wird standardmäßig in der gerenderten Tabellenansicht angezeigt. Sie können auch die Funktion display(df) auf Spark DataFrames oder Resilient Distributed Datasets (RDD) anwenden, um die gerenderte Tabellenansicht anzuzeigen.

  2. Sobald Sie eine gerenderte Tabellenansicht haben, wechseln Sie zur Diagrammansicht. Eingebaute Diagramme

  3. Sie können ihre Visualisierung jetzt anpassen, indem Sie die folgenden Werte angeben:

    Konfiguration Beschreibung
    Diagrammtyp Die display Funktion unterstützt eine breite Palette von Diagrammtypen, einschließlich Balkendiagrammen, Punktdiagrammen, Liniendiagrammen und mehr
    Schlüssel Angeben des Wertebereichs für die x-Achse
    Wert Angeben des Wertebereichs für die Y-Achsenwerte
    Seriengruppe Wird verwendet, um die Gruppen für die Aggregation zu bestimmen.
    Aggregation Methode zum Aggregieren von Daten in Ihrer Visualisierung

    Hinweis

    Standardmäßig verwendet die display(df) Funktion nur die ersten 1000 Zeilen der Daten, um die Diagramme zu rendern. Überprüfen Sie die Gesamtergebnisse der Aggregation, und klicken Sie auf die Schaltfläche Anwenden, um die Diagrammgenerierung auf das gesamte Dataset anzuwenden. Ein Spark-Auftrag wird ausgelöst, wenn sich die Diagrammeinstellung ändert. Bitte beachten Sie, dass es mehrere Minuten dauern kann, bis die Berechnung abgeschlossen und das Diagramm gerendert wird.

  4. Sobald Sie fertig sind, können Sie Ihre endgültige Visualisierung anzeigen und mit ihnen interagieren!

display(df) Statistikdetails

Sie können display(df, summary = true) verwenden, um die Statistikzusammenfassung eines bestimmten Apache Spark DataFrame zu überprüfen, die den Spaltennamen, den Spaltentyp, eindeutige Werte und fehlende Werte für jede Spalte enthält. Sie können auch eine bestimmte Spalte auswählen, um den Minimalwert, den Maximalwert, den Mittelwert und die Standardabweichung anzuzeigen. Integrierte Diagrammzusammenfassung

displayHTML(): Option

Azure Synapse Analytics-Notizbücher unterstützen HTML-Grafiken mithilfe der displayHTML Funktion.

Die folgende Abbildung ist ein Beispiel für das Erstellen von Visualisierungen mithilfe von D3.js.

d3-js-example

Führen Sie den folgenden Code aus, um die oben genannte Visualisierung zu erstellen.

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>

"""
)

Python-Bibliotheken

Wenn es um Datenvisualisierung geht, bietet Python mehrere Grafikbibliotheken, die über viele verschiedene Features verfügen. Standardmäßig enthält jeder Apache Spark Pool in Azure Synapse Analytics eine Reihe kuratierter und beliebter Open-Source-Bibliotheken. Sie können auch zusätzliche Bibliotheken und Versionen hinzufügen oder verwalten, indem Sie die Verwaltungsfunktionen der Azure Synapse Analytics-Bibliothek verwenden.

Matplotlib

Sie können standardmäßige Zeichnungsbibliotheken wie Matplotlib mithilfe der integrierten Renderingfunktionen für die einzelnen Bibliotheken rendern.

Die folgende Abbildung ist ein Beispiel für die Erstellung eines Balkendiagramms mithilfe von Matplotlib. Beispiel für Liniendiagramm.

Führen Sie den folgenden Beispielcode aus, um das Bild oben zu zeichnen.

# 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

Sie können HTML oder interaktive Bibliotheken wie Bokeh mit dem displayHTML(df) rendern.

Das folgende Bild ist ein Beispiel für das Zeichnen von Glyphen auf einer Karte mithilfe von bokeh.

bokeh-example

Führen Sie den folgenden Beispielcode aus, um das Bild oben zu zeichnen.

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

Sie können HTML-oder interaktive Bibliotheken wie Plotly mithilfe von displayHTML() rendern.

Führen Sie den folgenden Beispielcode aus, um das folgende Bild zu zeichnen.

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

Sie können html-Ausgabe von Pandas Dataframe als Standardausgabe anzeigen, Notizbuch zeigt automatisch den formatierten HTML-Inhalt an.

Panda-Diagrammbeispiel.

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 

Weitere Bibliotheken

Über diese Bibliotheken hinaus enthält die Azure Synapse Analytics-Runtime auch die folgenden Bibliotheken, die häufig für die Datenvisualisierung verwendet werden:

Sie können die Dokumentation zur Azure Synapse Analytics-Runtime besuchen, um die aktuellsten Informationen zu den verfügbaren Bibliotheken und Versionen zu erhalten.

R-Bibliotheken (Vorschau)

Das R-Ökosystem bietet mehrere Grafikbibliotheken, die über viele verschiedene Features verfügen. Standardmäßig enthält jeder Apache Spark Pool in Azure Synapse Analytics eine Reihe kuratierter und beliebter Open-Source-Bibliotheken. Sie können auch zusätzliche Bibliotheken und Versionen hinzufügen oder verwalten, indem Sie die Verwaltungsfunktionen der Azure Synapse Analytics-Bibliothek verwenden.

ggplot2

Die Bibliothek ggplot2 ist beliebt für die Datenvisualisierung und explorative Datenanalyse.

Screenshot eines Ggplot2-Diagrammbeispiels.

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 ist eine native R Plotting-Bibliothek zum Erstellen interaktiver Grafiken, die von der Bokeh-Visualisierungsbibliothek unterstützt werden.

Um rBokeh zu installieren, können Sie den folgenden Befehl verwenden:

install.packages("rbokeh")

Nach der Installation können Sie rBokeh nutzen, um interaktive Visualisierungen zu erstellen.

Screenshot eines Beispiels für ein rBokeh-Diagramm.

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

R Plotly

Plotlys R-Diagrammbibliothek erstellt interaktive Diagramme in Druckqualität.

Um Plotly zu installieren, können Sie den folgenden Befehl verwenden:

install.packages("plotly")

Nach der Installation können Sie Plotly nutzen, um interaktive Visualisierungen zu erstellen.

Screenshot eines Plotly-Diagrammbeispiels.

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 ist ein R-Wrapper für highcharts JavaScript-Bibliothek und seine Module.

Zum Installieren von Highcharter können Sie den folgenden Befehl verwenden:

install.packages("highcharter")

Nach der Installation können Sie Highcharter verwenden, um interaktive Visualisierungen zu erstellen.

Screenshot eines Beispiels für ein Highcharter-Diagramm.

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

Herstellen einer Verbindung mit Power BI mithilfe von Apache Spark & SQL On-Demand

Azure Synapse Analytics ist tief in Power BI integriert, sodass Datentechniker Analyselösungen erstellen können.

Azure Synapse Analytics ermöglicht es den verschiedenen Arbeitsbereichsberechnungsmodulen, Datenbanken und Tabellen zwischen seinen Spark-Pools und dem serverlosen SQL-Pool freizugeben. Mithilfe des freigegebenen Metadatenmodells können Sie Ihre Apache Spark-Tabellen mithilfe von SQL bei Bedarf abfragen. Nachdem Sie fertig sind, können Sie Ihren SQL-On-Demand-Endpunkt mit Power BI verbinden, um ihre synchronisierten Spark-Tabellen auf einfache Weise abzufragen.

Nächste Schritte