Teilen über


Apache Spark Advisor für Echtzeitberatung zu Notizbüchern

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

Integrierte Beratung

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 "Letzte Ausführungen" je nach benötigtem Ratschlag öffnen.

Gibt bei Verwendung von "randomSplit" möglicherweise inkonsistente Ergebnisse zurück.

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

Die Methode randomSplit() entspricht dem mehrmaligen Anwenden von sample() auf Ihrem DataFrame. Jedes Stichprobe lädt, partitioniert und sortiert den Datenframe erneut innerhalb von Partitionen. Die Datenverteilung über Partitionen und Sortierreihenfolge hinweg ist sowohl für randomSplit() als auch für sample() wichtig. Wenn sich eine der beiden bei der erneuten Abruf der Daten ändert, kann es über Aufteilungen hinweg möglicherweise zu Duplikaten oder fehlenden Werten kommen. Und die gleiche Probe mit demselben Saatgut kann unterschiedliche Ergebnisse erzeugen.

Diese Inkonsistenzen müssen nicht bei jedem Durchlauf auftreten, um sie jedoch vollständig zu beseitigen, cachen Sie Ihren DataFrame, neupartitionieren Sie nach einer oder mehreren Spalten oder wenden Sie Aggregatfunktionen wie groupBy an.

Tabellen-/Ansichtsname wird bereits verwendet

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

Ein Hinweis kann nicht erkannt werden.

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

Es wurde kein angegebener Beziehungsname(n) gefunden.

Die im Hinweis angegebenen Beziehungen konnten nicht gefunden werden. Stellen Sie sicher, dass die Beziehung(en) korrekt geschrieben sind und innerhalb des Bereichs des Hinweises darauf zugegriffen werden kann.

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

Ein Hinweis in der Abfrage verhindert, dass ein anderer Hinweis angewendet wird.

Die ausgewählte Abfrage enthält einen Hinweis, der verhindert, dass ein anderer Hinweis angewendet wird.

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 Verteilung von Rundungsfehlern zu reduzieren.

Diese Abfrage enthält einen Ausdruck vom Datentyp Double. Es wird empfohlen, die Konfiguration "spark.advise.divisionExprConvertRule.enable" zu aktivieren, die dazu beitragen kann, die Divisionsausdrücke zu reduzieren und die Rundungsfehlerverteilung 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 eine zeitaufwendige Verknüpfung aufgrund der Bedingung "ODER" innerhalb der Abfrage. Es wird empfohlen, die Konfiguration "spark.advise.nonEqJoinConvertRule.enable" zu aktivieren, wodurch die durch die Bedingung "Or" ausgelöste Verknüpfung in SMJ oder BHJ konvertiert werden kann, um diese Abfrage zu beschleunigen.

Benutzerfreundlichkeit

Der Apache Spark Advisor zeigt die Ratschläge, einschließlich Informationen, Warnungen und Fehler, bei der Ausgabe von Notizbuchzellen in Echtzeit an.

Spark Advisor-Einstellung

Mit der Spark Advisor-Einstellung können Sie auswählen, ob sie bestimmte Arten von Spark-Ratschlägen nach Ihren Anforderungen ein- oder ausblenden möchten. Darüber hinaus haben Sie die Flexibilität, den Spark Advisor für Ihre Notizbücher in einem Arbeitsbereich basierend auf Ihren Einstellungen zu aktivieren oder zu deaktivieren.

Sie können auf die Spark Advisor-Einstellungen auf der Fabric-Notizbuch-Ebene zugreifen, um ihre Vorteile zu genießen und eine produktive Notizbucherstellung zu gewährleisten.

Screenshot der Spark Advisor-Einstellung.