Visualizar os dados
O Azure Synapse é um serviço de análise integrado que acelera o tempo de insight, em armazéns de dados e sistemas de análise de big data. A visualização de dados é um componente fundamental para obter informações sobre seus dados. Ajuda a tornar os dados grandes e pequenos mais fáceis de entender para os seres humanos. Também facilita a deteção de padrões, tendências e valores atípicos em grupos de dados.
Ao usar o Apache Spark no Azure Synapse Analytics, há várias opções internas para ajudá-lo a visualizar seus dados, incluindo opções de gráfico de bloco de anotações Synapse, acesso a bibliotecas de código aberto populares e integração com Synapse SQL e Power BI.
Opções de gráfico do bloco de notas
Ao usar um bloco de anotações do Azure Synapse, você pode transformar sua exibição de resultados tabulares em um gráfico personalizado usando opções de gráfico. Aqui, você pode visualizar seus dados sem ter que escrever nenhum código.
função display(df)
A display
função permite transformar consultas SQL e dataframes e RDDs do Apache Spark em visualizações de dados avançadas. A display
função pode ser usada em dataframes ou RDDs criados em PySpark, Scala, Java, R e .NET.
Para aceder às opções do gráfico:
A saída de comandos mágicos aparece na visualização de
%%sql
tabela renderizada por padrão. Você também pode chamardisplay(df)
o Spark DataFrames ou a função RDD (Resilient Distributed Datasets) para produzir a exibição de tabela renderizada.Depois de ter uma vista de tabela renderizada, mude para a Vista de Gráfico.
Agora você pode personalizar sua visualização especificando os seguintes valores:
Configuração Description Tipo de Gráfico A display
função suporta uma ampla gama de tipos de gráficos, incluindo gráficos de barras, gráficos de dispersão, gráficos de linhas e muito maisKey Especificar o intervalo de valores para o eixo x valor Especificar o intervalo de valores para os valores do eixo y Grupo Série Usado para determinar os grupos para a agregação Agregação Método para agregar dados em sua visualização Nota
Por padrão, a
display(df)
função usará apenas as primeiras 1000 linhas dos dados para renderizar os gráficos. Verifique a Agregação sobre todos os resultados e clique no botão Aplicar, você aplicará a geração de gráficos de todo o conjunto de dados. Um trabalho do Spark será acionado quando a configuração do gráfico for alterada. Observe que pode levar vários minutos para concluir o cálculo e renderizar o gráfico.Uma vez feito, você pode visualizar e interagir com sua visualização final!
Detalhes estatísticos do display(DF)
Você pode usar display(df, summary = true)
para verificar o resumo de estatísticas de um determinado Apache Spark DataFrame que incluem o nome da coluna, tipo de coluna, valores exclusivos e valores ausentes para cada coluna. Você também pode selecionar em coluna específica para ver seu valor mínimo, valor máximo, valor médio e desvio padrão.
opção displayHTML()
Os blocos de anotações do Azure Synapse Analytics dão suporte a gráficos HTML usando a displayHTML
função.
A imagem a seguir é um exemplo de criação de visualizações usando D3.js.
Execute o código a seguir para criar a visualização acima.
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>
"""
)
Bibliotecas Python
Quando se trata de visualização de dados, o Python oferece várias bibliotecas gráficas que vêm repletas de muitos recursos diferentes. Por padrão, cada pool do Apache Spark no Azure Synapse Analytics contém um conjunto de bibliotecas de código aberto selecionadas e populares. Você também pode adicionar ou gerenciar bibliotecas adicionais e versões usando os recursos de gerenciamento de biblioteca do Azure Synapse Analytics.
Matplotlib
Você pode renderizar bibliotecas de plotagem padrão, como Matplotlib, usando as funções de renderização internas para cada biblioteca.
A imagem a seguir é um exemplo de criação de um gráfico de barras usando Matplotlib.
Execute o código de exemplo a seguir para desenhar a imagem acima.
# 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
Você pode renderizar HTML ou bibliotecas interativas, como bokeh, usando o displayHTML(df)
.
A imagem a seguir é um exemplo de plotagem de glifos em um mapa usando bokeh.
Execute o código de exemplo a seguir para desenhar a imagem acima.
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
Você pode renderizar HTML ou bibliotecas interativas como Plotly, usando o displayHTML().
Execute o código de exemplo a seguir para desenhar a imagem abaixo.
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
Você pode visualizar a saída html do dataframe pandas como a saída padrão, o bloco de anotações mostrará automaticamente o conteúdo html estilizado.
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
Bibliotecas adicionais
Além dessas bibliotecas, o Azure Synapse Analytics Runtime também inclui o seguinte conjunto de bibliotecas que são frequentemente usadas para visualização de dados:
Você pode visitar a documentação do Azure Synapse Analytics Runtime para obter as informações mais atualizadas sobre as bibliotecas e versões disponíveis.
Bibliotecas R (Pré-visualização)
O ecossistema R oferece várias bibliotecas gráficas que vêm repletas de muitos recursos diferentes. Por padrão, cada pool do Apache Spark no Azure Synapse Analytics contém um conjunto de bibliotecas de código aberto selecionadas e populares. Você também pode adicionar ou gerenciar bibliotecas adicionais e versões usando os recursos de gerenciamento de biblioteca do Azure Synapse Analytics.
ggplot2
A biblioteca ggplot2 é popular para visualização de dados e análise exploratória de dados.
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 é uma biblioteca de plotagem R nativa para criar gráficos interativos que são apoiados pela biblioteca de visualização Bokeh.
Para instalar o rBokeh, você pode usar o seguinte comando:
install.packages("rbokeh")
Uma vez instalado, você pode aproveitar o rBokeh para criar visualizações interativas.
library(rbokeh)
p <- figure() %>%
ly_points(Sepal.Length, Sepal.Width, data = iris,
color = Species, glyph = Species,
hover = list(Sepal.Length, Sepal.Width))
R Enredo
A biblioteca de gráficos R da Plotly faz gráficos interativos com qualidade de publicação.
Para instalar o Plotly, você pode usar o seguinte comando:
install.packages("plotly")
Uma vez instalado, você pode aproveitar o Plotly para criar visualizações interativas.
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
Carta Alta
Highcharter é um wrapper R para a biblioteca JavaScript Highcharts e seus módulos.
Para instalar o Highcharter, você pode usar o seguinte comando:
install.packages("highcharter")
Uma vez instalado, você pode aproveitar o Highcharter para criar visualizações interativas.
library(magrittr)
library(highcharter)
hchart(mtcars, "scatter", hcaes(wt, mpg, z = drat, color = hp)) %>%
hc_title(text = "Scatter chart with size and color")
Conectar-se ao Power BI usando o Apache Spark & SQL On-Demand
O Azure Synapse Analytics integra-se profundamente com o Power BI, permitindo que os engenheiros de dados criem soluções de análise.
O Azure Synapse Analytics permite que os diferentes mecanismos computacionais de espaço de trabalho compartilhem bancos de dados e tabelas entre seus pools do Spark e o pool SQL sem servidor. Usando o modelo de metadados compartilhados, você pode consultar suas tabelas do Apache Spark usando SQL sob demanda. Uma vez feito, você pode conectar seu ponto de extremidade SQL sob demanda ao Power BI para consultar facilmente suas tabelas sincronizadas do Spark.
Próximos passos
- Para obter mais informações sobre como configurar o Spark SQL DW Connector: Synapse SQL connector
- Exibir as bibliotecas padrão: tempo de execução do Azure Synapse Analytics