Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вступ до Spark DataFrame | Робота з Даними
Databricks: Основи для Початківців

Вступ до Spark DataFrame

Свайпніть щоб показати меню

Note
Визначення

Spark DataFrame — це розподілена колекція даних, організована у іменовані стовпці. Концептуально вона еквівалентна таблиці у реляційній базі даних або електронній таблиці з заголовками стовпців, але призначена для обробки на кластері комп'ютерів.

Переходячи до Розділу 4, ми зміщуємо фокус з інтерфейсу на самі дані. Для ефективної роботи у Databricks необхідно розуміти DataFrame. Це основна структура, яку використовує Apache Spark для зберігання та обробки даних. Незалежно від того, чи використовуєте ви Python, SQL або Scala, майже всі дії будуть пов'язані з взаємодією з DataFrame.

Існує також інтерфейс PySpark, який ви будете використовувати пізніше.

Apache Spark — це потужний рушій для обробки величезних обсягів даних паралельно на багатьох комп'ютерах одночасно. Він написаний на Scala і саме він виконує основну обробку даних у Databricks.

PySpark — це просто інтерфейс Python до Spark. Він дозволяє писати звичайний Python-код, який непомітно для вас керує Spark у фоновому режимі.

Тому, коли ви пишете df.filter() або df.groupBy() у Databricks notebook, ви використовуєте PySpark — але саме Spark обробляє мільйони рядків у вашому кластері.

Аналогія з електронною таблицею

Найпростіший спосіб уявити DataFrame — це подумати про окремий аркуш у книзі Excel. Він містить рядки даних і стовпці з певними назвами, такими як "Date", "Product_ID" або "Price". Однак, на відміну від аркуша Excel, який зберігається на вашому комп'ютері, Spark DataFrame є розподіленим. Це означає, що якщо ваш набір даних занадто великий для одного комп'ютера, Spark розбиває "електронну таблицю" на менші частини та розподіляє їх між різними вузлами вашого кластера.

Чому використовувати DataFrame замість сирих файлів?

Коли ви завантажуєте сирий CSV або JSON файл у DataFrame, Databricks виконує дві важливі дії:

  • Визначення схеми: аналізує дані, щоб зрозуміти, що "Price" — це число, а "Name" — текст;
  • Оптимізація: після завантаження даних у DataFrame Spark може використовувати свій "оптимізатор" для пошуку найшвидшого способу фільтрації або агрегації даних. Це працює як GPS, знаходячи найефективніший маршрут до результату, щоб не витрачати обчислювальні ресурси даремно.

Основні характеристики

Існує три основні властивості DataFrame, які варто запам'ятати:

  • Незмінність: після створення DataFrame його не можна змінити. Якщо ви "очищаєте" дані або "видаляєте стовпець", Spark фактично створює новий DataFrame із застосованими змінами. Це гарантує цілісність даних;
  • Лінива оцінка: Spark фактично не виконує жодних дій, доки ви не запитаєте результат (наприклад, підрахунок або відображення). Спочатку будується "план", і лише за необхідності він виконується;
  • Уніфікований API: ви можете створити DataFrame за допомогою Python, а потім виконувати запити до нього за допомогою SQL. Базова структура залишається незмінною, що дозволяє "змішувати мови", як ми практикували в Розділі 3.

DataFrame проти Table

У Databricks терміни "Table" і "DataFrame" часто використовуються як синоніми, але між ними є невелика різниця. Table — це постійний об'єкт, збережений у вашому Catalog. DataFrame — це тимчасовий об'єкт, який існує в пам'яті кластера під час роботи вашого ноутбука.

Зазвичай ваш робочий процес виглядає так:

  • Завантаження даних із Catalog у DataFrame;
  • Маніпулювання DataFrame за допомогою коду;
  • Збереження фінального результату назад у Catalog як Table.

1. Як Spark DataFrame обробляє набір даних, який занадто великий для одного комп'ютера?

2. Що відбувається, коли ви "модифікуєте" DataFrame у Spark, наприклад, видаляєте стовпець?

question mark

Як Spark DataFrame обробляє набір даних, який занадто великий для одного комп'ютера?

Виберіть правильну відповідь

question mark

Що відбувається, коли ви "модифікуєте" DataFrame у Spark, наприклад, видаляєте стовпець?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 1
some-alt