Фільтрація та Вибірка Даних за Допомогою SQL
Свайпніть щоб показати меню
Тимчасове представлення — це псевдонім DataFrame з обмеженням на сесію, який дозволяє взаємодіяти з вашими даними за допомогою стандартного синтаксису SQL. Дані не переміщуються і не дублюються; це лише SQL-дружнє «вікно» до DataFrame, що знаходиться в пам'яті кластера.
Хоча Python чудово підходить для створення складних конвеєрів, багато спеціалістів з даних віддають перевагу читабельності та швидкості SQL для фільтрації та вибору даних. У Databricks не потрібно обирати лише один підхід. Ви можете перетворити DataFrame з Python у тимчасову SQL-таблицю ("view") та одразу почати виконувати до неї запити.
Створення тимчасового представлення
Перш ніж виконувати SQL-запит до DataFrame, необхідно надати йому ім'я, яке SQL-движок зможе розпізнати. Це можна зробити за допомогою методу createOrReplaceTempView.
# Create a SQL view named 'diamond_view' from our existing DataFrame
df.createOrReplaceTempView("diamond_view")
Частина команди "Replace" є важливою: вона гарантує, що при повторному запуску комірки представлення просто оновиться, а не викличе помилку. Це представлення існуватиме лише протягом поточної сесії вашого блокнота.
Запити з використанням %sql Magic
Після реєстрації представлення можна змінити мову. Використовуючи команду magic %sql на початку нової комірки, можна виконувати ті ж самі вибірки та фільтрації, що й у Python, але використовуючи стандартний SQL-синтаксис.
%sql
SELECT carat, cut, depth
FROM diamond_view
WHERE price > 500
Потужність фільтрації в SQL
SQL особливо зручна для складної фільтрації. Можна використовувати оператор IN для фільтрації за кількома значеннями або оператор LIKE для пошуку за шаблоном — завдання, які часто є більш багатослівними в Python.
%sql
SELECT * FROM diamond_view
WHERE cut IN ('Good', 'Premium')
AND clarity LIKE '%V%'
Вибір і перейменування стовпців
У SQL вибір і перейменування стовпців здійснюється просто за допомогою ключового слова AS. Це поширена практика для надання заголовкам фінального звіту більш професійного вигляду.
%sql
SELECT
carat,
cut AS Diamond_Quality,
price AS Selling_Price
FROM diamond_view
Чому використовувати тимчасове подання?
Можна запитати: «Чому просто не виконати запит до таблиці безпосередньо з каталогу?» Перевага тимчасового подання полягає в тому, що воно дозволяє виконувати запити до DataFrame, який вже частково очищено або змінено в Python. Це створює міст між Python, який використовується для складної обробки даних, і SQL, який застосовується для фінального аналізу та візуалізації.
1. Який метод Python потрібно виконати перед тим, як використовувати %sql для запиту до DataFrame?
2. Що відбувається з "Тимчасовим представленням" після від'єднання блокнота від кластера або завершення сесії?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат