Apache Spark Advisor w usłudze Azure Synapse Analytics (wersja zapoznawcza)
Doradca platformy Apache Spark analizuje polecenia i kod uruchamiany przez platformę Spark i wyświetla porady w czasie rzeczywistym dotyczące przebiegów notesu. Doradca Spark ma wbudowane wzorce ułatwiające użytkownikom unikanie typowych błędów, oferowanie zaleceń dotyczących optymalizacji kodu, przeprowadzanie analizy błędów i lokalizowanie głównej przyczyny awarii.
Wbudowane porady
Może zwracać niespójne wyniki podczas używania polecenia "randomSplit"
Niespójne lub niedokładne wyniki mogą być zwracane podczas pracy z wynikami metody "randomSplit". Przed użyciem metody "randomSplit" użyj buforowania platformy Apache Spark (RDD).
Metoda randomSplit() jest równoważna wykonywaniu próbki() w ramce danych wiele razy, przy użyciu każdego przykładu ponownego pobierania, partycjonowania i sortowania ramki danych w partycjach. Rozkład danych między partycjami i kolejność sortowania jest ważny zarówno dla randomSplit() i sample(). W przypadku zmiany po ponownym pobraniu danych mogą występować duplikaty lub brakujące wartości w podziałach, a ta sama próbka przy użyciu tego samego nasion może wygenerować różne wyniki.
Te niespójności mogą nie wystąpić w każdym uruchomieniu, ale aby całkowicie je wyeliminować, buforować ramkę danych, ponownie partycjonować kolumny lub stosować funkcje agregujące, takie jak groupBy.
Nazwa tabeli/widoku jest już używana
Widok już istnieje o tej samej nazwie co utworzona tabela lub tabela już istnieje o tej samej nazwie co utworzony widok. Gdy ta nazwa jest używana w zapytaniach lub aplikacjach, tylko widok zostanie zwrócony bez względu na to, który został utworzony jako pierwszy. Aby uniknąć konfliktów, zmień nazwę tabeli lub widoku.
Nie można rozpoznać wskazówki
Wybrane zapytanie zawiera wskazówkę, która nie jest rozpoznawana. Sprawdź, czy wskazówka jest poprawnie wpisana.
spark.sql("SELECT /*+ unknownHint */ * FROM t1")
Nie można odnaleźć określonych nazw relacji
Nie można odnaleźć relacji określonych w wskazówce. Sprawdź, czy relacje są poprawnie napisane i dostępne w zakresie wskazówki.
spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Wskazówka w zapytaniu uniemożliwia zastosowanie innej wskazówki
Wybrane zapytanie zawiera wskazówkę, która uniemożliwia zastosowanie innej wskazówki.
spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Włącz funkcję "spark.advise.divisionExprConvertRule.enable", aby zmniejszyć propagację błędów zaokrąglania
To zapytanie zawiera wyrażenie o podwójnym typie. Zalecamy włączenie konfiguracji "spark.advise.divisionExprConvertRule.enable", co może pomóc zmniejszyć liczbę wyrażeń dzielenia i zmniejszyć propagację błędów zaokrąglania.
"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"
Włącz opcję "spark.advise.nonEqJoinConvertRule.enable", aby zwiększyć wydajność zapytań
To zapytanie zawiera czasochłonne sprzężenie z powodu warunku "Or" w zapytaniu. Zalecamy włączenie konfiguracji "spark.advise.nonEqJoinConvertRule.enable", co może pomóc przekonwertować sprzężenie wyzwalane przez warunek "Or" na SMJ lub BHJ w celu przyspieszenia tego zapytania.
Optymalizowanie tabeli różnicowej przy użyciu małych plików kompaktowania
To zapytanie znajduje się w tabeli różnicowej z wieloma małymi plikami. Aby zwiększyć wydajność zapytań, uruchom polecenie OPTIMIZE w tabeli różnicowej. Więcej szczegółów można znaleźć w tym artykule.
Optymalizowanie tabeli delty przy użyciu elementu ZOrder
To zapytanie znajduje się w tabeli delty i zawiera wysoce selektywny filtr. Aby zwiększyć wydajność zapytań, uruchom polecenie OPTIMIZE ZORDER BY w tabeli różnicowej. Więcej szczegółów można znaleźć w tym artykule.
Doświadczenie użytkownika
Doradca platformy Apache Spark wyświetla porady, w tym informacje, ostrzeżenia i błędy w danych wyjściowych komórki notesu w czasie rzeczywistym.
Info
Ostrzeżenie
błędy
Następne kroki
Aby uzyskać więcej informacji na temat monitorowania aplikacji platformy Apache Spark, zobacz artykuł Monitorowanie aplikacji platformy Apache Spark przy użyciu Synapse Studio.
Aby uzyskać więcej informacji na temat tworzenia notesu, zobacz How to use Synapse notebooks (Jak używać notesów usługi Synapse)
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla