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

Завершено

Одним из самых интуитивно понятных способов анализа результатов запросов к данным является их визуализация в виде диаграмм. Записные книжки в Azure Databricks предоставляют возможности диаграмм в пользовательском интерфейсе, и когда эта функция не предоставляет необходимые функции, можно использовать одну из многих графических библиотек Python для создания и отображения визуализаций данных в записной книжке.

Использование встроенных диаграмм ноутбуков

При отображении кадра данных или запуске SQL-запроса в записной книжке Spark в Azure Databricks результаты отображаются в ячейке кода. По умолчанию результаты отображаются в виде таблицы, но вы также можете просматривать результаты в виде визуализации и настраивать отображение данных, как показано здесь:

Снимок экрана записной книжки с визуализацией количества продуктов по категориям.

Типы визуализаций

Это различные виды визуализаций, которые можно сделать в Databricks, каждый из которых подходит для определенных видов аналитики данных. Основные моменты:

  • Линейчатые диаграммы / графики / диаграммы области: для отображения тенденций с течением времени, категориальных сравнений или обоих. Полезно узнать, как развиваются метрики.

  • Круговые диаграммы: хорошо подходят для отображения пропорциональных частей целого (но не для временных рядов).

  • Гистограмма: чтобы увидеть распределение числовых данных (как значения распределены, сгруппированы).

  • Тепловая карта: полезна для визуализации двух категориальных осей и отображения числового значения цветом, помогает видеть закономерности между группами.

  • Точечные или пузырьковые диаграммы: отображение связи между двумя (или более) числовыми переменными; пузырьки позволяют использовать размер или цвет в качестве третьего измерения.

  • График коробки: для сравнения распределения (распространение, квартильы, выбросы) между категориями.

  • Комбинированная диаграмма: сочетание линий и столбцов в одной диаграмме, полезно, когда вам нужно сравнить различные показатели с различными шкалами.

  • Сводная таблица: позволяет преобразовать и агрегировать данные в виде таблицы (например, SQL PIVOT/GROUP BY), полезна для кросс-анализа.

  • Специальные типы: когортный анализ (отслеживание групп с течением времени), отображение счётчика (выделение одной сводной метрики, возможно, против цели), визуализация воронки, визуализации карты (хороплет, маркер), облако слов и т. д. Эти типы более специализированы.

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

Использование графических пакетов в коде

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

Например, можно использовать следующий код PySpark для агрегирования данных из гипотетических данных продуктов, изученных ранее в этом модуле, и Matplotlib для создания диаграммы на основе агрегированных данных.

from matplotlib import pyplot as plt

# Get the data as a Pandas dataframe
data = spark.sql("SELECT Category, COUNT(ProductID) AS ProductCount \
                  FROM products \
                  GROUP BY Category \
                  ORDER BY Category").toPandas()

# Clear the plot area
plt.clf()

# Create a Figure
fig = plt.figure(figsize=(12,8))

# Create a bar plot of product counts by category
plt.bar(x=data['Category'], height=data['ProductCount'], color='orange')

# Customize the chart
plt.title('Product Counts by Category')
plt.xlabel('Category')
plt.ylabel('Products')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=0.7)
plt.xticks(rotation=70)

# Show the plot area
plt.show()

Библиотека Matplotlib требует, чтобы данные находились в кадре данных Pandas, а не в кадре данных Spark, поэтому для их преобразования применяется метод toPandas. Затем код создает фигуру указанного размера и строит линейчатую диаграмму с некоторой настраиваемой конфигурацией свойств, и только после этого отображается итоговая диаграмма.

Диаграмма, созданная кодом, будет выглядеть примерно так:

линейчатая диаграмма, показывающая количество продуктов по категориям.

С помощью библиотеки Matplotlib можно создавать самые разные диаграммы; однако для создания диаграмм с высоким уровнем настройки можно использовать и другие библиотеки, такие как Seaborn.

Примечание.

Библиотеки Matplotlib и Seaborn уже могут быть установлены в кластерах Databricks в зависимости от среды выполнения Databricks для кластера. Если нет, или если вы хотите использовать другую библиотеку, которая еще не установлена, ее можно добавить в кластер. Дополнительные сведения см. в библиотеках кластеров в документации по Azure Databricks.