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
Warnung
Fehler
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.