Compartir a través de


Visualización de datos

Azure Synapse es un servicio de análisis integrado que acelera el tiempo para obtener información, a través de almacenes de datos y sistemas de análisis de macrodatos. La visualización de datos es un componente clave para poder obtener información sobre los datos. Ayuda a hacer más comprensible para los humanos los datos grandes y pequeños. También facilita la detección de patrones, tendencias y valores atípicos en grupos de datos.

Al usar Apache Spark en Azure Synapse Analytics, hay varias opciones integradas para ayudarle a visualizar los datos, incluidas las opciones del gráfico de cuadernos de Synapse, el acceso a bibliotecas de código abierto populares e integración con Synapse SQL y Power BI.

Opciones del gráfico del bloc de notas

Al usar un cuaderno de Azure Synapse, puede convertir la vista de resultados tabulares en un gráfico personalizado mediante las opciones del gráfico. Aquí puede visualizar los datos sin tener que escribir ningún código.

función display(df)

La display función permite convertir consultas SQL y tramas de datos y RDD de Apache Spark en visualizaciones de datos enriquecidas. La display función se puede usar en tramas de datos o RDD creadas en PySpark, Scala, Java, R y .NET.

Para acceder a las opciones del gráfico:

  1. De forma predeterminada, la salida de los comandos magic %%sql aparece en la vista de tabla representada. También puede llamar a display(df) en DataFrames de Spark o a una función de Resilient Distributed Datasets (RDD) para generar la vista tabular representada.

  2. Una vez que tenga una vista de tabla renderizada, cambie a la vista de gráfico. gráficos integrados

  3. Ahora puede personalizar la visualización especificando los valores siguientes:

    Configuración Descripción
    Tipo de gráfico La display función admite una amplia gama de tipos de gráficos, incluidos gráficos de barras, gráficos de dispersión, gráficos de líneas, etc.
    Key Especificar el intervalo de valores para el eje X
    Importancia Especificar el intervalo de valores para los valores del eje Y
    Grupo de series Se usa para determinar los grupos de la agregación
    Aggregation Método para agregar datos en la visualización

    Nota:

    De forma predeterminada, la display(df) función solo tomará las primeras 1000 filas de los datos para representar los gráficos. Compruebe la agregación en todos los resultados y haga clic en el botón Aplicar , aplicará la generación de gráficos de todo el conjunto de datos. Se desencadenará un trabajo de Spark cuando cambie la configuración del gráfico. Tenga en cuenta que puede tardar varios minutos en completar el cálculo y representar el gráfico.

  4. Una vez hecho esto, puede ver e interactuar con la visualización final.

detalles estadísticos de display(df)

Puede usar display(df, summary = true) para comprobar el resumen de estadísticas de un dataFrame de Apache Spark determinado que incluya el nombre de columna, el tipo de columna, los valores únicos y los valores que faltan para cada columna. También puede seleccionar en una columna específica para ver su valor mínimo, valor máximo, valor medio y desviación estándar. resumen-de-gráficos-integrados

opción displayHTML()

Los cuadernos de Azure Synapse Analytics admiten gráficos HTML mediante la displayHTML función .

La imagen siguiente es un ejemplo de creación de visualizaciones mediante D3.js.

d3-js-example

Ejecute el código siguiente para crear la visualización anterior.

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 de Python

Cuando se trata de la visualización de datos, Python ofrece varias bibliotecas de gráficos equipadas con varias características diferentes. De forma predeterminada, cada grupo de Apache Spark de Azure Synapse Analytics contiene un conjunto de bibliotecas de código abierto seleccionadas y populares. También puede agregar o administrar bibliotecas y versiones adicionales mediante las funcionalidades de administración de bibliotecas de Azure Synapse Analytics.

Matplotlib

Puede representar bibliotecas de trazado estándar, como Matplotlib, mediante las funciones de representación integradas para cada biblioteca.

En la imagen siguiente se muestra un ejemplo de cómo crear un gráfico de barras mediante Matplotlib. Ejemplo de gráfico de líneas.

Ejecute el código de ejemplo siguiente para dibujar la imagen anterior.

# 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()

Efecto Bokeh

Puede representar bibliotecas HTML o interactivas, como bokeh, mediante .displayHTML(df)

La imagen siguiente es un ejemplo del trazado de glifos en un mapa mediante bokeh.

bokeh-example

Ejecute el código de ejemplo siguiente para dibujar la imagen anterior.

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

Puede representar bibliotecas HTML o interactivas, como Plotly, mediante displayHTML() .

Ejecute el código de ejemplo siguiente para dibujar la imagen siguiente.

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

Puede ver la salida HTML del dataframe de Pandas como la salida predeterminada. El cuaderno mostrará automáticamente el contenido HTML con estilo.

Ejemplo de grafo de Panda.

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 adicionales

Además de estas bibliotecas, el entorno de ejecución de Azure Synapse Analytics también incluye el siguiente conjunto de bibliotecas que a menudo se usan para la visualización de datos:

Puede visitar la documentación del entorno de ejecución de Azure Synapse Analytics para obtener la información más actualizada sobre las bibliotecas y versiones disponibles.

Bibliotecas de R (versión preliminar)

El ecosistema de R ofrece varias bibliotecas de grafos que vienen empaquetadas con muchas características diferentes. De forma predeterminada, cada grupo de Apache Spark de Azure Synapse Analytics contiene un conjunto de bibliotecas de código abierto seleccionadas y populares. También puede agregar o administrar bibliotecas y versiones adicionales mediante las funcionalidades de administración de bibliotecas de Azure Synapse Analytics.

ggplot2

La biblioteca ggplot2 es popular para la visualización de datos y el análisis exploratorio de datos.

Captura de pantalla de un ejemplo de gráfico ggplot2.

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 es una biblioteca nativa de trazado de R para crear gráficos interactivos respaldados por la biblioteca de visualización de Bokeh.

Para instalar rBokeh, puede usar el siguiente comando:

install.packages("rbokeh")

Una vez instalado, puede aprovechar rBokeh para crear visualizaciones interactivas.

Captura de pantalla de un ejemplo de gráfico rBokeh.

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 biblioteca de grafos de R de Plotly hace grafos interactivos y de calidad para su publicación.

Para instalar Plotly, puede usar el siguiente comando:

install.packages("plotly")

Una vez instalado, puede aprovechar Plotly para crear visualizaciones interactivas.

Captura de pantalla de un ejemplo de gráfico de Plotly.

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 es un contenedor de R para la biblioteca javaScript de Highcharts y sus módulos.

Para instalar Highcharter, puede usar el siguiente comando:

install.packages("highcharter")

Una vez instalado, puede aprovechar Highcharter para crear visualizaciones interactivas.

Captura de pantalla de un ejemplo de gráfico highcharter.

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

Conexión a Power BI mediante Apache Spark y SQL a petición

Azure Synapse Analytics se integra profundamente con Power BI, lo que permite a los ingenieros de datos crear soluciones de análisis.

Azure Synapse Analytics permite que los diferentes motores de cálculo del área de trabajo compartan bases de datos y tablas entre sus grupos de Spark y el grupo de SQL sin servidor. Con el modelo de metadatos compartidos, puede consultar las tablas de Apache Spark mediante SQL a petición. Una vez hecho esto, puede conectar el punto de conexión a petición de SQL a Power BI para consultar fácilmente las tablas de Spark sincronizadas.

Pasos siguientes