Formateador de Spark SQL
Formatee Apache Spark SQL y las consultas de Databricks con las reglas de Spark para identificadores entre acentos graves, cadenas con escapes de barra inversa, cadenas sin procesar r'' y sustituciones ${var}. CLUSTER BY, DISTRIBUTE BY y SORT BY se conservan como cláusulas, LATERAL VIEW y LEFT SEMI o ANTI JOIN empiezan en líneas nuevas, y SELECT * EXCEPT permanece en línea. Los avisos de cadenas y paréntesis sin cerrar indican la línea y la columna para los ingenieros de datos.
Preguntas frecuentes
¿Qué sintaxis de Spark SQL reconoce?
Se reconocen los identificadores entre acentos graves, las cadenas entre comillas simples y dobles con escapes de barra inversa, las cadenas sin procesar r'' y los literales binarios X''. Las sustituciones ${var}, los subíndices map['key'] y array[0], y las conversiones :: se conservan intactos.
¿Qué cláusulas específicas de Spark se admiten?
CLUSTER BY, DISTRIBUTE BY y SORT BY ocupan líneas propias, al igual que ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN y LEFT ANTI JOIN empiezan en líneas nuevas, como los demás JOIN.
¿Qué ocurre con SELECT * EXCEPT?
EXCEPT permanece en la misma línea cuando aparece justo después de un asterisco. Así, SELECT * EXCEPT (col) no se confunde con el operador de conjuntos EXCEPT.
¿Se conservan los marcadores de posición ${var}?
Sí. Las sustituciones como ${env} o ${hivevar:date} se conservan exactamente como están, incluidos los dos puntos que contienen.
¿Admite MERGE INTO?
Sí. Las ramas WHEN MATCHED y WHEN NOT MATCHED de las sentencias MERGE INTO de Delta Lake empiezan en líneas nuevas.
¿Puedo pegar SQL desde una cadena de PySpark?
Sí, pegue el propio texto SQL sin las comillas de Python que lo rodean. El resultado se puede volver a pegar en spark.sql() o en una celda del cuaderno.
¿Cambia el uso de mayúsculas y minúsculas en las palabras clave?
No. Las palabras clave y los nombres conservan las mayúsculas y minúsculas originales. Solo cambian los espacios en blanco y los saltos de línea.
¿Qué errores se detectan?
Cadenas sin cerrar, identificadores entre comillas invertidas, subíndices y comentarios de bloque, y paréntesis sin equilibrar, cada uno con línea y columna. No se ejecuta nada en un clúster.
¿Qué tamaño puede tener la entrada?
Hasta 1 MB por solicitud y 128 KB por instrucción. Las exportaciones del cuaderno con muchas instrucciones se formatean de una en una.
¿Puedo elegir la sangría y se guarda mi SQL?
Use 2 o 4 espacios, o tabuladores. SQL solo se formatea en memoria y nunca se guarda.