Freigeben über


Apache Spark Advisor für Echtzeitempfehlungen auf Notebooks

Der Apache Spark Advisor analysiert Befehle und Code, die von Apache Spark ausgeführt werden, und zeigt Echtzeitempfehlungen für Notebookausführungen an. Der Apache Spark Advisor verfügt über integrierte Muster, mit denen Benutzer häufige Fehler vermeiden können. Er bietet Empfehlungen für die Codeoptimierung, führt eine Fehleranalyse durch und sucht die Grundursache von Fehlern.

Integrierte Empfehlung

Der Spark Advisor, ein in Impulse integriertes Tool, bietet integrierte Muster zum Erkennen und Beheben von Problemen in Apache Spark-Anwendungen. In diesem Artikel werden einige der im Tool enthaltenen Muster erläutert.

Sie können den Bereich Zuletzt verwendete Ausführungen basierend auf der Art der benötigten Empfehlung öffnen.

Kann bei Verwendung von „randomSplit“ inkonsistente Ergebnisse zurückgeben

Beim Arbeiten mit der randomSplit-Methode können inkonsistente oder ungenaue Ergebnisse zurückgegeben werden. Verwenden Sie die Apache Spark-Zwischenspeicherung (RDD), bevor Sie die Methode „randomSplit()“ verwenden.

Die Methode „randomSplit()“ entspricht der mehrfachen Ausführung von sample() für Ihren Datenrahmen. Wobei jedes Beispiel Ihren Datenrahmen innerhalb von Partitionen erneut abruft, partitioniert und sortiert. Die Datenverteilung über Partitionen und die Sortierreihenfolge ist sowohl für randomSplit() als auch für sample() wichtig. Wenn sich eine der beiden Methoden beim Abrufen von Daten ändert, kann es zu Duplikaten oder fehlenden Werten über Aufteilungen hinweg kommen. Und dasselbe Beispiel mit demselben Seed kann zu unterschiedlichen Ergebnissen führen.

Diese Inkonsistenzen treten möglicherweise nicht bei jeder Ausführung auf, aber um sie vollständig zu beseitigen, zwischenspeichern Sie Ihren Datenrahmen, partitionieren Sie eine oder mehrere Spalten neu oder wenden Sie Aggregatfunktionen wie groupBy an.

Der Name der Tabelle/Ansicht wird bereits verwendet

Es existiert bereits eine Ansicht mit demselben Namen wie die erstellte Tabelle oder eine Tabelle mit demselben Namen wie die erstellte Ansicht. Wenn dieser Name in Abfragen oder Anwendungen verwendet wird, wird nur die Ansicht zurückgegeben, unabhängig davon, was zuerst erstellt wurde. Um Konflikte zu vermeiden, benennen Sie entweder die Tabelle oder die Ansicht um.

Hinweis kann nicht erkannt werden

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

Der/die angegebene(n) Beziehungsname(n) konnte(n) nicht gefunden werden

Die im Hinweis angegebene(n) Beziehung(en) konnte(n) nicht gefunden werden. Überprüfen Sie, ob die Beziehung(en) richtig geschrieben und im Rahmen des Hinweises zugänglich sind.

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Ein Hinweis in der Abfrage verhindert die Anwendung eines anderen Hinweises

Die ausgewählte Abfrage enthält einen Hinweis, der die Anwendung eines anderen Hinweises verhindert.

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Aktivieren Sie „spark.advise.divisionExprConvertRule.enable“, um die Ausbreitung von Rundungsfehlern zu reduzieren

Diese Abfrage enthält den Ausdruck mit dem Typ Double. Wir empfehlen, dass Sie die Konfiguration „spark.advise.divisionExprConvertRule.enable“ aktivieren, die dabei helfen kann, die Divisionsausdrücke zu reduzieren und die Ausbreitung von Rundungsfehlern zu reduzieren.

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Aktivieren Sie „spark.advise.nonEqJoinConvertRule.enable“, um die Abfrageleistung zu verbessern

Diese Abfrage enthält aufgrund der „Oder“-Bedingung in der Abfrage zeitaufwändige Verknüpfungen. Wir empfehlen, die Konfiguration „spark.advise.nonEqJoinConvertRule.enable“ zu aktivieren, die dabei helfen kann, den durch die „Oder“-Bedingung ausgelösten Join in SMJ oder BHJ umzuwandeln, um diese Abfrage zu beschleunigen.

Benutzererfahrung

Der Apache Spark Advisor zeigt die Empfehlung, einschließlich Informationen, Warnungen und Fehler, bei der Notebookzellenausgabe in Echtzeit an.

  • Info Screenshot, der die Information anzeigt.

  • Warnung Screenshot, der die Warnung anzeigt.

  • Fehler Screenshot, der die Fehler anzeigt.

Spark Advisor-Einstellung

Mit der Spark Advisor-Einstellung können Sie Ihren Anforderungen entsprechend auswählen, ob bestimmte Arten von Spark-Ratschlägen ein- oder ausgeblendet werden sollen. Darüber hinaus haben Sie die Möglichkeit, den Spark Advisor nach Ihren Wünschen für Notebooks in einem Arbeitsbereich zu aktivieren oder zu deaktivieren.

Auf die Spark Advisor-Einstellungen können Sie auf der Ebene der Fabric-Notebooks zugreifen. So profitieren Sie von den entsprechenden Vorteilen und von einer produktiven Notebookerstellung.

Screenshot der Spark Advisor-Einstellung.