Бөлісу құралы:


Визуализация данных

Azure Synapse — это интегрированная служба аналитики, которая ускоряет извлечение аналитических сведений в разных хранилищах данных и системах анализа больших данных. Визуализация данных — ключевой компонент, позволяющий получить сведения о данных, и таким образом упростить понимание больших и малых данных. Кроме того, визуализация данных упрощает обнаружение шаблонов, тенденций и выбросов в группах данных.

При использовании Apache Spark в Azure Synapse Analytics доступны различные встроенные параметры, которые помогут вам визуализировать данные, в том числе параметры диаграммы записной книжки Synapse, доступ к популярным библиотекам с открытым исходным кодом, а также интеграция с Synapse SQL и Power BI.

Параметры диаграмм записной книжки

Используя записную книжку Azure Synapse, вы сможете преобразовать представление табличных результатов в настраиваемою диаграмму с помощью параметров диаграммы. Здесь данные можно визуализировать без написания кода.

Функция display(df)

Эта display функция позволяет превратить sql-запросы и кадры данных Apache Spark и удаленные диски в расширенные визуализации данных. Функцию display можно использовать в кадрах данных или удаленных рабочих столах, созданных в PySpark, Scala, Java, R и .NET.

Для доступа к параметрам диаграмм выполните следующие действия:

  1. Выходные данные магических %%sql команд отображаются в отображенном представлении таблицы по умолчанию. Вы также можете вызвать display(df) для Spark DataFrames или функцию устойчивых распределенных наборов данных (RDD), чтобы создать представление отображаемой таблицы.

  2. Получив представление отображаемой таблицы, переключитесь на представление диаграммы. built-in-charts

  3. Теперь вы можете настроить визуализацию, указав следующие значения:

    Настройка Description
    Тип диаграммы Функция display поддерживает широкий спектр типов диаграмм, в том числе линейчатые и точечные диаграммы, линейные графики и т. д.
    Ключ. Указание диапазона значений для оси Х
    Значение Указание диапазона значений для оси Y
    Группа рядов Используется для определения групп для агрегирования
    Агрегат Метод агрегирования данных в визуализации

    Примечание.

    По умолчанию функция display(df) принимает для отрисовки диаграмм только первые 1000 строк данных. Проверьте, выбран ли пункт Aggregation over all results (Агрегирование всех результатов), и нажмите кнопку Применить чтобы создать диаграмму из всего набора данных. При изменении параметра диаграммы будет запущено задание Spark. Обратите внимание, что выполнение вычислений и отображение диаграммы может занять несколько минут.

  4. После этого вы сможете просматривать окончательную визуализацию и взаимодействовать с ней!

Подробные данные статистики display(df)

Функцию display(df, summary = true) можно использовать для проверки сводки статистики по указанному кадру данных Apache Spark, включающей в себя имя столбца, тип столбца, уникальные значения и отсутствующие значения для каждого столбца. Вы также можете выбрать конкретный столбец, чтобы увидеть его минимальное, максимальное и среднее значения, а также стандартное отклонение. built-in-charts-summary

Параметр displayHTML()

Записные книжки Azure Synapse Analytics поддерживают использование графики в HTML с помощью функции displayHTML.

На следующем рисунке показан пример создания визуализаций с помощью D3.js.

d3-js-example

Выполните следующий код, чтобы создать приведенную выше визуализацию.

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

Что касается визуализации данных, Python предлагает несколько библиотек для построения диаграмм, которые оснащены множеством различных возможностей. По умолчанию каждый пул Apache Spark в Azure Synapse Analytics содержит набор проверенных популярных библиотек с открытым исходным кодом. Вы также можете добавлять дополнительные библиотеки и их версии или управлять ими с помощью возможностей управления библиотеками Azure Synapse Analytics.

Matplotlib

Вы можете визуализировать стандартные библиотеки построения графиков, например Matplotlib, используя для каждой библиотеки встроенные функции отрисовки.

На следующем рисунке показан пример создания линейчатой диаграммы с помощью Matplotlib. Line graph example.

Выполните следующий пример кода, чтобы нарисовать изображение выше.

# 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

Вы можете отобразить HTML или интерактивные библиотеки, такие как bokeh, с помощью displayHTML(df).

Ниже приведен пример построения глифов на карте с использованием bokeh.

bokeh-example

Выполните следующий пример кода, чтобы нарисовать изображение выше.

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

Вы можете отображать HTML или интерактивные библиотеки, такие как Plotly, используя displayHTML().

Выполните следующий пример кода, чтобы нарисовать изображение, представленное ниже.

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.

Вы можете просматривать выходные данные HTML кадра данных pandas в качестве выходных данных по умолчанию, и записная книжка автоматически отображает содержимое в стиле HTML.

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 

Дополнительные библиотеки

Помимо этих библиотек, среда выполнения Azure Synapse Analytics также содержит следующий набор библиотек, которые часто используют для визуализации данных:

Ознакомьтесь с документацией по среде выполнения Azure Synapse Analytics, чтобы получить наиболее актуальные сведения о доступных библиотеках и версиях.

Библиотеки R (предварительная версия)

Экосистема R предлагает несколько библиотек графирования, которые упакованы с множеством различных функций. По умолчанию каждый пул Apache Spark в Azure Synapse Analytics содержит набор проверенных популярных библиотек с открытым исходным кодом. Вы также можете добавлять дополнительные библиотеки и их версии или управлять ими с помощью возможностей управления библиотеками Azure Synapse Analytics.

ggplot2

Библиотека ggplot2 популярна для визуализации данных и анализа исследуемых данных.

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 — это собственная библиотека графиков R для создания интерактивной графики, поддерживаемой библиотекой визуализации Bokeh.

Чтобы установить rBokeh, можно использовать следующую команду:

install.packages("rbokeh")

После установки можно использовать rBokeh для создания интерактивных визуализаций.

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 Графики

Библиотека графов на основе графиков на графике графиков графиков графиков графиков в графике делает интерактивные, качественные графики публикации.

Чтобы установить Графики, можно использовать следующую команду:

install.packages("plotly")

После установки вы можете использовать графики для создания интерактивных визуализаций.

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 — это оболочка R для библиотеки JavaScript Highcharts и его модулей.

Чтобы установить Highcharter, можно использовать следующую команду:

install.packages("highcharter")

После установки можно использовать Highcharter для создания интерактивных визуализаций.

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")

Подключение к Power BI с помощью Apache Spark и SQL по запросу

Azure Synapse Analytics тесно интегрируется с Power BI, позволяя инженерам по анализу данных работать над созданием аналитических решений.

Эта служба позволяет различным вычислительным системам рабочих областей использовать базы данных и таблицы совместно с пулами Spark и бессерверным пулом SQL. Используя общую модель метаданных, вы сможете выполнять запросы к таблицам Apache Spark с помощью SQL по запросу. После этого конечную точку SQL по запросу можно подключить к Power BI, чтобы легко выполнять запросы к синхронизированным таблицам Spark.

Следующие шаги