Spark SQL-formázó
Formázza a Apache Spark SQL és Databricks-lekérdezéseket a Spark szabályai szerint: a backtickek közötti azonosítókat, a backslash escape-eket tartalmazó karakterláncokat, a nyers r'' karakterláncokat és a ${var} helyettesítéseket kezelve. A CLUSTER BY, DISTRIBUTE BY és SORT BY záradékként marad meg; a LATERAL VIEW és a LEFT SEMI vagy ANTI JOIN új sorban kezdődik, a SELECT * EXCEPT pedig egy sorban marad. A lezáratlan karakterláncokat és zárójeleket sorszámmal és oszloppal jelzi az adatmérnökök számára.
Gyakran ismételt kérdések
Mely Spark SQL-szintaxisokat ismeri fel?
Felismeri a backtickek közötti azonosítókat, a backslash escape-eket tartalmazó, aposztrófok vagy idézőjelek közötti karakterláncokat, a nyers r'' karakterláncokat és az X'' bináris literálokat. A ${var} helyettesítések, a map['key'] és az array[0] indexelései, valamint a :: típuskonverziók érintetlenül maradnak.
Mely Spark-specifikus záradékok támogatottak?
A CLUSTER BY, DISTRIBUTE BY és SORT BY az ORDER BY-hoz hasonlóan külön sorba kerül. A LATERAL VIEW, a LATERAL VIEW OUTER, a LEFT SEMI JOIN és a LEFT ANTI JOIN a JOIN-okhoz hasonlóan új sorban kezdődik.
Mi a helyzet a SELECT * EXCEPT kifejezéssel?
A csillag utáni EXCEPT egy sorban marad. Így a SELECT * EXCEPT (col) nem téveszthető össze az EXCEPT halmazműveleti operátorral.
Megmaradnak a ${var} helyőrzők?
Igen. Az olyan helyettesítések, mint a ${env} vagy a ${hivevar:date}, pontosan úgy maradnak, ahogyan írták, a bennük lévő kettősponttal együtt.
Támogatja a MERGE INTO utasítást?
Igen. A Delta Lake MERGE INTO utasítások WHEN MATCHED és WHEN NOT MATCHED ágai új sorban kezdődnek.
Beilleszthetek SQL-t egy PySpark-karakterláncból?
Igen, illessze be magát a SQL szöveget, a körülötte lévő Python-idézőjelek nélkül. Az eredmény visszailleszthető a spark.sql() függvénybe vagy egy notebook cellájába.
Megváltoztatja a kulcsszavak kis- és nagybetűit?
Nem. A kulcsszavak és nevek megőrzik az íráskor használt kis- és nagybetűket. Csak a szóközök és a sortörések változnak.
Milyen hibákat észlel?
Lezáratlan karakterláncok, backtickes azonosítók, alsó indexek és blokkmegjegyzések, valamint kiegyensúlyozatlan zárójelek; mindegyiknél megjelenik a sor- és oszlopszám. Semmi sem fut le fürtön.
Mekkora lehet a bemenet?
Kérésenként legfeljebb 1 MB, utasításonként pedig 128 KB. A sok utasítást tartalmazó notebookexportokat utasításonként formázza.
Választhatok behúzást, és tárolódik az SQL?
Használjon 2 vagy 4 szóközt, illetve tabulátorokat. A SQL csak a memóriában formázódik, és soha nem kerül mentésre.