Apache Spark-tanácsadó a jegyzetfüzetekkel kapcsolatos valós idejű tanácsadáshoz

Fontos

A Microsoft Fabric jelenleg előzetes verzióban érhető el. Ezek az információk egy előzetes termékre vonatkoznak, amely a kiadás előtt lényegesen módosulhat. A Microsoft nem vállal kifejezett vagy vélelmezett garanciát az itt megadott információkra vonatkozóan.

Az Apache Spark-tanácsadó elemzi az Apache Spark által futtatott parancsokat és kódot, és valós idejű tanácsokat jelenít meg a notebookfuttatásokhoz. Az Apache Spark advisor beépített mintákkal segíti a felhasználókat a gyakori hibák elkerülésében. Javaslatokat tesz a kódoptimalizáláshoz, hibaelemzést végez, és megkeresi a hibák kiváltó okát.

Beépített tanácsok

Az Impulzussal integrált Spark Advisor beépített mintákat biztosít az Apache Spark-alkalmazások problémáinak észleléséhez és megoldásához. Ez a cikk az eszköz néhány mintáját ismerteti.

A Legutóbbi futtatások panelt a szükséges tanácsok típusa alapján nyithatja meg.

Inkonzisztens eredményeket adhat vissza a "randomSplit" használatakor

A randomSplit metódus használatakor inkonzisztens vagy pontatlan eredmények jelenhetnek meg. A randomSplit() metódus használata előtt használja az Apache Spark (RDD) gyorsítótárazását.

A randomSplit() metódus egyenértékű a minta() adatkereten többszöri végrehajtásával. Ahol minden minta újrafedi, particionálja és rendezi az adatkeretet a partíciókon belül. A partíciók közötti adateloszlás és a rendezési sorrend mind a randomSplit(), mind a sample() esetében fontos. Ha az adatok újrabetöltésekor megváltozik, előfordulhat, hogy ismétlődések vagy hiányzó értékek vannak a felosztások között. És ugyanaz a minta, amely ugyanazt a vetőmagot használja, különböző eredményeket eredményezhet.

Előfordulhat, hogy ezek az inkonzisztenciák nem minden futtatáskor fordulnak elő, de teljes kizárásuk érdekében gyorsítótárazza az adatkeretet, újraparticionálja az oszlopo(ka)t, vagy aggregátumfüggvényeket, például a groupBy függvényt alkalmazza.

A tábla/nézet neve már használatban van

Már létezik olyan nézet, amelynek a neve megegyezik a létrehozott táblával, vagy már létezik olyan tábla, amelynek a neve megegyezik a létrehozott nézet nevével. Ha ezt a nevet használja a lekérdezésekben vagy alkalmazásokban, a rendszer csak a nézetet adja vissza, függetlenül attól, hogy melyiket hozta létre először. Az ütközések elkerülése érdekében nevezze át a táblát vagy a nézetet.

Nem sikerült felismerni a tippet

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

Nem található megadott kapcsolatnév(ek)

Nem található a tippben megadott kapcsolat(ok). Ellenőrizze, hogy a kapcsolat(ok) helyesen vannak-e megírva és elérhetők-e a tipp hatókörén belül.

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

A lekérdezés egy tippje megakadályozza egy másik tipp alkalmazását

A kijelölt lekérdezés tartalmaz egy tippet, amely megakadályozza egy másik tipp alkalmazását.

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

A "spark.advise.divisionExprConvertRule.enable" engedélyezése a kerekítési hibák propagálásának csökkentése érdekében

Ez a lekérdezés a Dupla típusú kifejezést tartalmazza. Javasoljuk, hogy engedélyezze a "spark.advise.divisionExprConvertRule.enable" konfigurációt, amely segíthet csökkenteni az osztási kifejezéseket, és csökkenteni a kerekítési hibák propagálását.

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

Engedélyezze a "spark.advise.nonEqJoinConvertRule.enable" beállítást a lekérdezési teljesítmény javítása érdekében

Ez a lekérdezés az "Or" feltétel miatt időigényes illesztést tartalmaz a lekérdezésben. Javasoljuk, hogy engedélyezze a "spark.advise.nonEqJoinConvertRule.enable" konfigurációt, amely segíthet az "Or" feltétel által aktivált illesztés SMJ-vé vagy BHJ-vé konvertálásában a lekérdezés felgyorsításához.

Felhasználó felület

Az Apache Spark-tanácsadó valós időben jeleníti meg a jegyzetfüzet cellakimenetében megjelenő tanácsokat, beleértve az információkat, a figyelmeztetéseket és a hibákat.

  • Info Screenshot showing the info.

  • Figyelmeztető képernyőkép a figyelmeztetésről.

  • Hiba képernyőképe a hibákról.

Következő lépések