Formattatore Spark SQL
Formatta Apache Spark SQL e le query Databricks secondo le regole Spark per gli identificatori tra backtick, le stringhe con escape tramite backslash, le stringhe raw r'' e le sostituzioni ${var}. CLUSTER BY, DISTRIBUTE BY e SORT BY vengono mantenute come clausole, LATERAL VIEW e LEFT SEMI o ANTI JOIN iniziano su nuove righe e SELECT * EXCEPT resta sulla stessa riga. Le stringhe e le parentesi non chiuse vengono segnalate con riga e colonna per i data engineer.
Domande frequenti
Quale sintassi Spark SQL viene riconosciuta?
Vengono riconosciuti gli identificatori tra backtick, le stringhe tra apici singoli e doppi con escape tramite backslash, le stringhe raw r'' e i letterali binari X''. Le sostituzioni ${var}, gli indici map['key'] e array[0] e i cast :: vengono mantenuti integri.
Quali clausole specifiche di Spark sono supportate?
CLUSTER BY, DISTRIBUTE BY e SORT BY vanno su righe proprie, come ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN e LEFT ANTI JOIN iniziano su nuove righe, come gli altri join.
Come viene gestito SELECT * EXCEPT?
EXCEPT, se segue direttamente un asterisco, resta sulla stessa riga. In questo modo SELECT * EXCEPT (col) non viene confuso con l'operatore di insieme EXCEPT.
Le sostituzioni ${var} vengono mantenute?
Sì. Le sostituzioni come ${env} o ${hivevar:date} vengono mantenute esattamente come sono, compresi i due punti al loro interno.
Supporta MERGE INTO?
Sì. I rami WHEN MATCHED e WHEN NOT MATCHED delle istruzioni MERGE INTO di Delta Lake iniziano su nuove righe.
Posso incollare SQL da una stringa PySpark?
Sì, incollate il testo SQL senza le virgolette Python che lo racchiudono. Il risultato può essere incollato di nuovo in spark.sql() o in una cella del notebook.
Modifica le maiuscole delle parole chiave?
No. Le parole chiave e i nomi mantengono le maiuscole e minuscole originali. Cambiano solo gli spazi e le interruzioni di riga.
Quali errori vengono rilevati?
Stringhe, identificatori tra backtick, indici e commenti di blocco non chiusi, oltre a parentesi non bilanciate, con riga e colonna per ciascun errore. Non viene eseguito nulla su un cluster.
Qual è la dimensione massima dell'input?
Fino a 1 MB per richiesta e 128 KB per istruzione. Le esportazioni dei notebook con molte istruzioni vengono formattate una alla volta.
Posso scegliere il rientro e il mio SQL viene salvato?
Usate 2 o 4 spazi oppure tabulazioni. SQL viene formattato solo in memoria e non viene mai salvato.