Форматувальник Spark SQL
Форматуйте Apache Spark SQL і запити Databricks за правилами Spark для ідентифікаторів у зворотних лапках, рядків з екрануванням зворотною скісною рискою, сирих рядків r'' і підстановок ${var}. CLUSTER BY, DISTRIBUTE BY і SORT BY залишаються клаузами, LATERAL VIEW і LEFT SEMI або ANTI JOIN починаються з нових рядків, а SELECT * EXCEPT залишається в одному рядку. Про незакриті рядки й дужки повідомляється із зазначенням рядка та стовпця для інженерів даних.
Поширені запитання
Який синтаксис Spark SQL розпізнається?
Розпізнаються ідентифікатори у зворотних лапках, рядки в одинарних і подвійних лапках з екрануванням зворотною скісною рискою, сирі рядки r'' і двійкові літерали X''. Підстановки ${var}, індекси map['key'] і array[0], а також приведення типів :: зберігаються без змін.
Які специфічні для Spark клаузи підтримуються?
CLUSTER BY, DISTRIBUTE BY і SORT BY отримують окремі рядки, як і ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN і LEFT ANTI JOIN починаються з нових рядків, як і інші JOIN.
Як обробляється SELECT * EXCEPT?
EXCEPT безпосередньо після зірочки залишається в тому самому рядку. Завдяки цьому SELECT * EXCEPT (col) не плутається з оператором об’єднання множин EXCEPT.
Чи зберігаються заповнювачі ${var}?
Так. Підстановки на кшталт ${env} або ${hivevar:date} зберігаються точно в тому вигляді, як їх написано, зокрема двокрапка всередині них.
Чи підтримується MERGE INTO?
Так. Гілки WHEN MATCHED і WHEN NOT MATCHED операторів MERGE INTO у Delta Lake починаються з нових рядків.
Чи можна вставити SQL з рядка PySpark?
Так, вставте сам текст SQL без навколишніх лапок Python. Результат можна вставити назад у spark.sql() або в комірку ноутбука.
Чи змінюється регістр ключових слів?
Ні. Ключові слова й імена зберігають регістр, у якому ви їх написали. Змінюються лише пробіли та розриви рядків.
Які помилки виявляються?
Незакриті рядки, ідентифікатори у зворотних лапках, підрядки та блочні коментарі, а також незбалансовані дужки — для кожного вказуються рядок і стовпець. На кластері нічого не запускається.
Який максимальний розмір вхідних даних?
До 1 MB на запит і 128 KB на інструкцію. Експорти ноутбуків із багатьма інструкціями форматуються по одній інструкції за раз.
Чи можна вибрати відступи та чи зберігається мій SQL?
Використовуйте 2 або 4 пробіли чи табуляцію. SQL форматується лише в пам’яті й ніколи не зберігається.