Share via


Apache Spark Advisor voor realtime advies over notebooks

De Apache Spark Advisor analyseert opdrachten en code die wordt uitgevoerd door Apache Spark en geeft realtime advies weer voor Notebook-uitvoeringen. De Apache Spark Advisor heeft ingebouwde patronen om gebruikers te helpen veelvoorkomende fouten te voorkomen. Het biedt aanbevelingen voor codeoptimalisatie, voert foutanalyses uit en zoekt de hoofdoorzaak van fouten.

Ingebouwd advies

De Spark Advisor, een hulpprogramma dat is geïntegreerd met Impuls, biedt ingebouwde patronen voor het detecteren en oplossen van problemen in Apache Spark-toepassingen. In dit artikel worden enkele van de patronen in het hulpprogramma uitgelegd.

U kunt het deelvenster Recente uitvoeringen openen op basis van het type advies dat u nodig hebt.

Kan inconsistente resultaten retourneren bij gebruik van 'randomSplit'

Inconsistente of onnauwkeurige resultaten kunnen worden geretourneerd bij het werken met de randomSplit-methode . Gebruik Caching van Apache Spark (RDD) voordat u de methode randomSplit() gebruikt.

Methode randomSplit() is gelijk aan het uitvoeren van sample() op uw gegevensframe meerdere keren. Waarbij elk voorbeeld opnieuw wordt gebruikt, partities en uw gegevensframe binnen partities sorteert. De gegevensdistributie tussen partities en sorteervolgorde is belangrijk voor zowel randomSplit() als sample(). Als er wijzigingen worden aangebracht in gegevensverwijzing, zijn er mogelijk dubbele waarden of ontbrekende waarden in splitsingen. En hetzelfde monster met hetzelfde zaad kan verschillende resultaten opleveren.

Deze inconsistenties kunnen niet voorkomen bij elke uitvoering, maar om ze volledig te elimineren, slaat u uw gegevensframe in de cache op, maakt u een of meer partities op een of meer kolommen of past u statistische functies toe, zoals groupBy.

De naam van de tabel/weergave is al in gebruik

Er bestaat al een weergave met dezelfde naam als de gemaakte tabel of een tabel bestaat al met dezelfde naam als de gemaakte weergave. Wanneer deze naam wordt gebruikt in query's of toepassingen, wordt alleen de weergave geretourneerd, ongeacht welke eerst is gemaakt. Als u conflicten wilt voorkomen, wijzigt u de naam van de tabel of de weergave.

Kan een hint niet herkennen

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

Kan geen opgegeven relationele naam(en) vinden

Kan de relatie(s) die zijn opgegeven in de hint niet vinden. Controleer of de relaties correct zijn gespeld en toegankelijk zijn binnen het bereik van de hint.

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

Een hint in de query voorkomt dat een andere hint wordt toegepast

De geselecteerde query bevat een hint waarmee wordt voorkomen dat een andere hint wordt toegepast.

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

Schakel spark.advise.divisionExprConvertRule in om de doorgifte van afrondingsfouten te verminderen

Deze query bevat de expressie met het dubbele type. U wordt aangeraden de configuratie spark.advise.divisionExprConvertRule.enable in te schakelen, waarmee u de verdelingsexpressies kunt verminderen en de doorgifte van afrondingsfouten kunt verminderen.

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

Schakel spark.advise.nonEqJoinConvertRule in om de queryprestaties te verbeteren

Deze query bevat tijdrovende join vanwege de voorwaarde 'Or' binnen de query. U wordt aangeraden de configuratie 'spark.advise.nonEqJoinConvertRule.enable' in te schakelen, waarmee u de join die wordt geactiveerd door de voorwaarde Or, kunt converteren naar SMJ of BHJ om deze query te versnellen.

Gebruikerservaring

De Apache Spark-adviseur geeft het advies weer, inclusief informatie, waarschuwingen en fouten, in de uitvoer van notebookcellen in realtime.

  • Info Schermopname van de informatie.

  • Waarschuwing Schermopname van de waarschuwing.

  • Fout Schermopname van de fouten.

Spark Advisor-instelling

Met de spark advisor-instelling kunt u kiezen of u specifieke typen Spark-advies wilt weergeven of verbergen op basis van uw behoeften. Daarnaast hebt u de flexibiliteit om Spark Advisor in of uit te schakelen voor uw notebooks binnen een werkruimte, op basis van uw voorkeuren.

U hebt toegang tot de Spark Advisor-instellingen op het niveau van Fabric Notebook om te profiteren van de voordelen en om een productieve ontwerpervaring voor notebooks te garanderen.

Schermopname van de spark advisor-instelling.