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.
Figyelmeztető
Hiba