Apache Spark-rådgivare för råd om notebook-filer i realtid
Viktigt
Microsoft Fabric är en förhandsversion.
Apache Spark-rådgivaren analyserar kommandon och kod som körs av Apache Spark och visar råd i realtid för notebook-körningar. Apache Spark-rådgivaren har inbyggda mönster som hjälper användarna att undvika vanliga misstag. Den ger rekommendationer för kodoptimering, utför felanalys och letar upp rotorsaken till fel.
Inbyggda råd
Spark Advisor, ett verktyg integrerat med Impulse, tillhandahåller inbyggda mönster för att identifiera och lösa problem i Apache Spark-program. Den här artikeln förklarar några av de mönster som ingår i verktyget.
Du kan öppna fönstret Senaste körningar baserat på vilken typ av råd du behöver.
Kan returnera inkonsekventa resultat när du använder "randomSplit"
Inkonsekventa eller felaktiga resultat kan returneras när du arbetar med metoden randomSplit . Använd Apache Spark-cachelagring (RDD) innan du använder metoden randomSplit().
Metoden randomSplit() motsvarar att utföra sample() på dataramen flera gånger. Där varje exempel förfinar, partitionerar och sorterar dataramen inom partitioner. Datafördelningen mellan partitioner och sorteringsordningen är viktig för både randomSplit() och sample(). Om antingen ändringar görs vid datareparering kan det finnas dubbletter eller saknade värden i delningar. Och samma exempel som använder samma frö kan ge olika resultat.
Dessa inkonsekvenser kanske inte inträffar vid varje körning, men för att eliminera dem helt cachelagrar du dataramen, partitionerar om en eller flera kolumner eller tillämpar mängdfunktioner som groupBy.
Tabell-/vynamn används redan
Det finns redan en vy med samma namn som den skapade tabellen, eller så finns det redan en tabell med samma namn som den skapade vyn. När det här namnet används i frågor eller program returneras endast vyn oavsett vilken som skapades först. För att undvika konflikter byter du namn på antingen tabellen eller vyn.
Det går inte att identifiera ett tips
spark.sql("SELECT /*+ unknownHint */ * FROM t1")
Det går inte att hitta angivna relationsnamn
Det går inte att hitta de relationer som anges i tipset. Kontrollera att relationerna är rättstavade och tillgängliga inom tipsets omfång.
spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Ett tips i frågan förhindrar att ett annat tips tillämpas
Den valda frågan innehåller ett tips som förhindrar att ett annat tips tillämpas.
spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Aktivera "spark.advise.divisionExprConvertRule.enable" för att minska avrundningsfelspridningen
Den här frågan innehåller uttrycket med typen Double. Vi rekommenderar att du aktiverar konfigurationen "spark.advise.divisionExprConvertRule.enable", vilket kan minska divisionsuttrycken och minska spridningen av avrundningsfel.
"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"
Aktivera "spark.advise.nonEqJoinConvertRule.enable" för att förbättra frågeprestanda
Den här frågan innehåller tidskrävande koppling på grund av "Eller"-villkor i frågan. Vi rekommenderar att du aktiverar konfigurationen "spark.advise.nonEqJoinConvertRule.enable", vilket kan hjälpa dig att konvertera den koppling som utlöses av "Or"-villkoret till SMJ eller BHJ för att påskynda frågan.
Användarupplevelse
Apache Spark-rådgivaren visar råd, inklusive information, varningar och fel, vid notebook-cellutdata i realtid.
Info
Varning
Fel