# Форматировщик 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 форматируется только в памяти и никогда не сохраняется.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
