Formatador de Spark SQL
Formate Apache Spark SQL e consultas do Databricks com as regras do Spark para identificadores entre crases, strings com escapes de barra invertida, strings brutas r'' e substituições ${var}. CLUSTER BY, DISTRIBUTE BY e SORT BY são mantidos como cláusulas; LATERAL VIEW e LEFT SEMI ou ANTI JOIN começam em novas linhas, e SELECT * EXCEPT permanece na mesma linha. Strings e parênteses sem fechamento são reportados com linha e coluna para engenheiros de dados.
Perguntas frequentes
Quais sintaxes de Spark SQL são reconhecidas?
Identificadores entre crases, strings entre aspas simples e duplas com escapes de barra invertida, strings brutas r'' e literais binários X'' são reconhecidos. Substituições ${var}, índices map['key'] e array[0] e conversões :: são mantidos intactos.
Quais cláusulas específicas do Spark são compatíveis?
CLUSTER BY, DISTRIBUTE BY e SORT BY ficam em linhas próprias, assim como ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN e LEFT ANTI JOIN começam em novas linhas, assim como as junções.
E quanto a SELECT * EXCEPT?
EXCEPT diretamente após um asterisco permanece na mesma linha. Assim, SELECT * EXCEPT (col) não é confundido com o operador de conjunto EXCEPT.
Os espaços reservados ${var} são mantidos?
Sim. Substituições como ${env} ou ${hivevar:date} são mantidas exatamente como foram escritas, incluindo os dois-pontos dentro delas.
Há suporte para MERGE INTO?
Sim. Os ramos WHEN MATCHED e WHEN NOT MATCHED das instruções MERGE INTO do Delta Lake começam em novas linhas.
Posso colar SQL de uma string do PySpark?
Sim, cole o próprio texto SQL sem as aspas externas do Python. O resultado pode ser colado de volta em spark.sql() ou em uma célula do notebook.
A ferramenta altera maiúsculas e minúsculas das palavras-chave?
Não. As palavras-chave e os nomes mantêm a capitalização usada por você. Apenas os espaços em branco e as quebras de linha mudam.
Quais erros são detectados?
Strings, identificadores entre crases, subscritos e comentários de bloco não fechados, além de parênteses desbalanceados, cada um com linha e coluna. Nada é executado em um cluster.
Qual pode ser o tamanho da entrada?
Até 1 MB por solicitação e 128 KB por instrução. Exportações de notebooks com várias instruções são formatadas uma instrução por vez.
Posso escolher a indentação e meu SQL é armazenado?
Use 2 ou 4 espaços ou tabulações. SQL é formatado apenas na memória e nunca é salvo.