Zdieľať cez


Poradca pre Apache Spark pre poradenstvo v reálnom čase v notebookoch

Poradca pre Apache Spark analyzuje príkazy a kód spustenia apache Spark a zobrazuje rady v reálnom čase pre spustenie notebookov. Poradca pre Apache Spark má vstavané vzory, ktoré pomáhajú používateľom vyhnúť sa bežným chybám. Ponúka odporúčania na optimalizáciu kódu, vykoná analýzu chýb a vyhľadá hlavnú príčinu zlyhaní.

Vstavané rady

Poradca pre Spark, nástroj integrovaný s aplikáciou Impulse, poskytuje vstavané vzory na zisťovanie a riešenie problémov v aplikáciách Apache Spark. Tento článok vysvetľuje niektoré vzory obsiahnuté v nástroji.

Tablu Nedávne spustenia môžete otvoriť podľa typu rady, ktorú potrebujete.

Môže vrátiť nekonzistentné výsledky pri použití "randomSplit"

Nekonzistentné alebo nepresné výsledky sa môžu vrátiť pri práci s metódou randomSplit . Pred použitím metódy randomSplit() použite ukladanie do vyrovnávacej pamäte Apache Spark (RDD).

Metóda randomSplit() je ekvivalentná výkonu sample() na údajovom ráme viackrát. Tam, kde každá ukážka refetuje, vytvára oblasti a zoraďuje údajový rám v rámci oblastí. Distribúcia údajov v rámci oblastí a poradie zoradenia je dôležitá pre randomSplit() aj sample(). Ak sa jedna zo zmien zmení na refetch údajov, v rámci rozdelení môžu existovať duplikáty alebo chýbajúce hodnoty. Tá istá vzorka, ktorá používa rovnaké osivo, môže mať odlišné výsledky.

Tieto nekonzistencie sa nemusia vyskytnúť pri každom spustení, ale na ich úplné odstránenie do vyrovnávacej pamäte ukladajte údajový rámec, časť stĺpcov alebo použite agregačné funkcie, ako napríklad groupBy.

Názov tabuľky/zobrazenia sa už používa

Zobrazenie už existuje s rovnakým názvom ako vytvorená tabuľka alebo tabuľka, ktorá už existuje s rovnakým názvom ako vytvorené zobrazenie. Keď sa tento názov použije v dotazoch alebo aplikáciách, vráti sa len zobrazenie bez ohľadu na to, ktoré z nich bolo vytvorené ako prvé. Ak sa chcete vyhnúť konfliktom, premenujte tabuľku alebo zobrazenie.

Nedá sa rozpoznať tip

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

Nepodarilo sa nájsť zadaný názov vzťahu

Nepodarilo sa nájsť vzťahy zadané v tipe. Overte správnosť a prístupnosť vzťahov v rámci rozsahu tipu.

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

Tip v dotaze bráni použitiu ďalšieho tipu

Vybratý dotaz obsahuje tip, ktorý bráni použitiu ďalšieho tipu.

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

Povoľte možnosť spark.advise.divisionExprConvertRule.enable, čím znížite šírenie chýb zaokrúhlenia.

Tento dotaz obsahuje výraz s typom Double. Odporúčame, aby ste povolili konfiguráciu spark.advise.divisionExprConvertRule.enable, ktorá môže pomôcť znížiť výrazy delenia a znížiť šírenie chýb zaokrúhlenia.

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

Povoľte možnosť spark.advise.nonEqJoinConvertRule.enable na zlepšenie výkonu dotazov.

Tento dotaz obsahuje časovo náročné spojenie z dôvodu podmienky Or v rámci dotazu. Odporúčame, aby ste povolili konfiguráciu "spark.advise.nonEqJoinConvertRule.enable", ktorá môže pomôcť konvertovať spojenie spúšťané podmienkou "Or" na SMJ alebo BHJ, aby sa tento dotaz zrýchlil.

Používateľské prostredie

Poradca pre Apache Spark zobrazuje rady vrátane informácií, upozornení a chýb vo výstupe notebookovej bunky v reálnom čase.

  • Info Snímka obrazovky zobrazujúca informácie.

  • Upozornenie Snímka obrazovky zobrazujúca upozornenie.

  • Chyba Snímka obrazovky zobrazujúca chyby.

Nastavenie Spark Advisor

Nastavenie Poradca pre Spark umožňuje vybrať, či chcete zobraziť alebo skryť konkrétne typy rád Spark podľa svojich potrieb. Na základe vašich preferencií máte tiež flexibilitu povoliť alebo zakázať poradca pre Službu Spark Advisor pre poznámkové bloky v pracovnom priestore.

Ak chcete využívať svoje výhody a produktívne prostredie na vytváranie notebookov, môžete získať prístup k nastaveniam služby Spark Advisor na úrovni poznámkového bloku služby Fabric.

Snímka obrazovky zobrazujúca nastavenie Poradca pre spark.