Spark SQL-formatering
Formatér Apache Spark SQL og Databricks-forespørgsler efter Sparks regler for backtick-identifikatorer, strenge med backslash-escape, rå r''-strenge og ${var}-substitutioner. CLUSTER BY, DISTRIBUTE BY og SORT BY bevares som klausuler, LATERAL VIEW og LEFT SEMI eller ANTI JOIN begynder på nye linjer, og SELECT * EXCEPT forbliver på samme linje. Uafsluttede strenge og parenteser rapporteres med linje og kolonne til dataingeniører.
Ofte stillede spørgsmål
Hvilken Spark SQL-syntaks genkendes?
Backtick-identifikatorer, strenge i enkelt- og dobbelte anførselstegn med backslash-escape, rå r''-strenge og X''-binærlitteraler genkendes. ${var}-substitutioner, map['key']- og array[0]-indeksering samt ::-casts bevares intakte.
Hvilke Spark-specifikke klausuler understøttes?
CLUSTER BY, DISTRIBUTE BY og SORT BY får hver deres linje ligesom ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN og LEFT ANTI JOIN begynder på nye linjer ligesom joins.
Hvad med SELECT * EXCEPT?
EXCEPT lige efter en stjerne forbliver på samme linje. På den måde forveksles SELECT * EXCEPT (col) ikke med mængdeoperatoren EXCEPT.
Bevares ${var}-pladsholdere?
Ja. Substitutioner som ${env} eller ${hivevar:date} bevares præcis, som de er skrevet, inklusive kolon indeni.
Understøttes MERGE INTO?
Ja. WHEN MATCHED- og WHEN NOT MATCHED-grene i Delta Lake MERGE INTO-sætninger begynder på nye linjer.
Kan jeg indsætte SQL fra en PySpark-streng?
Ja, indsæt selve SQL-teksten uden de omgivende Python-anførselstegn. Resultatet kan indsættes tilbage i spark.sql() eller en celle i en notesbog.
Ændres der på store og små bogstaver i nøgleord?
Nej. Nøgleord og navne beholder den store og lille skrift, du skrev. Kun mellemrum og linjeskift ændres.
Hvilke fejl registreres?
Uafsluttede strenge, backtick-identifikatorer, indekseringer og blokkommentarer samt ubalancerede parenteser rapporteres hver med linje og kolonne. Intet køres på en klynge.
Hvor stort kan input være?
Op til 1 MB pr. anmodning og 128 KB pr. sætning. Eksport fra notesbøger med mange sætninger formateres én sætning ad gangen.
Kan jeg vælge indrykningen, og gemmes mit SQL?
Brug 2 eller 4 mellemrum eller tabulatorer. SQL formateres kun i hukommelsen og gemmes aldrig.