Formater Spark SQL
Formatuj zapytania Apache Spark SQL i Databricks zgodnie z regułami Spark dotyczącymi identyfikatorów w backtickach, ciągów ze sekwencjami ucieczki backslash, surowych ciągów r'' i podstawień ${var}. CLUSTER BY, DISTRIBUTE BY i SORT BY są zachowywane jako klauzule, LATERAL VIEW oraz LEFT SEMI lub ANTI JOIN rozpoczynają nowe wiersze, a SELECT * EXCEPT pozostaje w jednym wierszu. Niedomknięte ciągi znaków i nawiasy są zgłaszane wraz z numerem wiersza i kolumny, co pomaga inżynierom danych.
Najczęściej zadawane pytania
Jakie składnie Spark SQL są rozpoznawane?
Rozpoznawane są identyfikatory w backtickach, ciągi w apostrofach i cudzysłowach podwójnych z sekwencjami ucieczki backslash, surowe ciągi r'' oraz literały binarne X''. Podstawienia ${var}, indeksowanie map['key'] i array[0] oraz rzutowania :: są zachowywane w całości.
Które klauzule specyficzne dla Spark są obsługiwane?
CLUSTER BY, DISTRIBUTE BY i SORT BY otrzymują własne wiersze, podobnie jak ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER, LEFT SEMI JOIN i LEFT ANTI JOIN rozpoczynają nowe wiersze, tak jak złączenia.
A co z SELECT * EXCEPT?
EXCEPT bezpośrednio po gwiazdce pozostaje w tym samym wierszu. Dzięki temu SELECT * EXCEPT (col) nie jest mylone z operatorem zbiorów EXCEPT.
Czy symbole zastępcze ${var} są zachowywane?
Tak. Podstawienia takie jak ${env} lub ${hivevar:date} są zachowywane dokładnie w takiej postaci, w jakiej je zapisano, łącznie ze znajdującym się w nich dwukropkiem.
Czy obsługuje MERGE INTO?
Tak. Gałęzie WHEN MATCHED i WHEN NOT MATCHED instrukcji Delta Lake MERGE INTO rozpoczynają nowe wiersze.
Czy mogę wkleić SQL z ciągu znaków PySpark?
Tak, wklej sam tekst SQL bez otaczających go cudzysłowów Pythona. Wynik możesz wkleić z powrotem do spark.sql() lub komórki notatnika.
Czy zmienia wielkość liter w słowach kluczowych?
Nie. Słowa kluczowe i nazwy zachowują użyte przez Ciebie wielkość liter. Zmieniają się tylko białe znaki i podziały wierszy.
Jakie błędy są wykrywane?
Niezamknięte ciągi znaków, identyfikatory w backtickach, indeksy i komentarze blokowe oraz niezbilansowane nawiasy — każde z numerem wiersza i kolumny. Nic nie jest uruchamiane w klastrze.
Jak duże mogą być dane wejściowe?
Do 1 MB na żądanie i 128 KB na instrukcję. Eksporty notatników zawierające wiele instrukcji są formatowane po jednej instrukcji naraz.
Czy mogę wybrać wcięcia i czy mój skrypt SQL jest zapisywany?
Użyj 2 lub 4 spacji albo tabulatorów. SQL jest formatowane wyłącznie w pamięci i nigdy nie jest zapisywane.