Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Apache Spark Advisor analizza i comandi e il codice eseguiti da Apache Spark e visualizza consigli in tempo reale per le esecuzioni dei notebook. Apache Spark Advisor include modelli predefiniti che consentono agli utenti di evitare errori comuni. Offre consigli per l'ottimizzazione del codice in base, esegue l'analisi degli errori e individua la causa radice degli errori.
Consigli integrati
Spark Advisor, uno strumento integrato con Impulse, fornisce modelli predefiniti per rilevare e risolvere problemi nelle applicazioni Apache Spark. Questo articolo illustra alcuni modelli inclusi nello strumento.
È possibile aprire il riquadro Esecuzioni recenti in base al tipo di consiglio necessario.
Può restituire risultati incoerenti quando si usa 'randomSplit'
È possibile che vengano restituiti risultati incoerenti o imprecisi quando si usa il metodo randomSplit. Usare la memorizzazione nella cache di Apache Spark (RDD) prima di usare il metodo randomSplit().
Il metodo randomSplit() equivale all'esecuzione di sample() nel frame di dati più volte. Dove ciascun esempio riesegue il fetch, partiziona e ordina il frame di dati all'interno di ciascuna partizione. La distribuzione dei dati tra partizioni e ordinamento è importante sia per randomSplit() che per sample(). Se uno dei due cambia durante il recupero dei dati, potrebbero esserci duplicati o valori mancanti tra le suddivisioni. Lo stesso campione che usa la stessa seme può produrre risultati diversi.
Queste incoerenze potrebbero non verificarsi in ogni esecuzione, ma per eliminarle completamente, memorizzare nella cache il frame di dati, ripartizionare in una o più colonne o applicare funzioni di aggregazione come groupBy.
Il nome della visualizzazione/tabella è già in uso
Esiste già una vista con lo stesso nome della tabella creata oppure esiste già una tabella con lo stesso nome della vista creata. Quando questo nome viene usato nelle query o nelle applicazioni, solo la vista verrà restituita indipendentemente da quale venga creato per primo. Per evitare conflitti, rinominare la tabella o la vista.
Impossibile riconoscere un hint
spark.sql("SELECT /*+ unknownHint */ * FROM t1")
Impossibile trovare uno o più nomi di relazione specificati
Impossibile trovare le relazioni specificate nell'hint. Verificare che le relazioni siano digitate correttamente e accessibili nell'ambito dell'hint.
spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Un hint nella query impedisce l'applicazione di un altro hint
La query selezionata contiene un hint che impedisce l'applicazione di un altro hint.
spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Abilitare "spark.advise.divisionExprConvertRule.enable" per ridurre la propagazione degli errori di arrotondamento
Questa query contiene un'espressione di tipo Double. È consigliabile abilitare la configurazione "spark.recommend.divisionExprConvertRule.enable", che consente di ridurre le espressioni di divisione e di ridurre la propagazione degli errori di arrotondamento.
"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"
Abilitare "spark.advise.nonEqJoinConvertRule.enable" per migliorare le prestazioni delle query
Questa query contiene un join dispendioso in termini di tempo a causa della condizione "Or" all'interno della query. Consigliamo di abilitare la configurazione "spark.advise.nonEqJoinConvertRule.enable", che può aiutare a convertire il join attivato dalla condizione "Or" in SMJ o BHJ per accelerare questa query.
Fallback di esecuzione in Spark basato su JVM
Quando il motore di esecuzione nativo è abilitato e il piano di esecuzione di una cella del notebook contiene operatori che non possono essere trasferiti sulla via nativa, Spark Advisor visualizza un avviso in tempo reale nell'output della cella. L'avviso indica che l'esecuzione è stata restituita a Spark basato su JVM e consente di identificare la causa, ad esempio operatori non supportati, tipi di dati o configurazioni. Per risolvere il fallback, esaminare il piano di query per le operazioni non supportate e regolare la logica in modo da usare gli operatori supportati oppure verificare che spark.native.enabled sia impostato correttamente per il notebook o la definizione del job Spark.
Esperienza utente
L'advisor di Apache Spark visualizza i consigli, che includono le informazioni, gli avvisi e gli errori, nell'output della cella del notebook in tempo reale.
Impostazione di Spark Advisor
L'impostazione di Advisor Spark consente di scegliere se mostrare o nascondere tipi specifici di consigli Spark in base alle proprie esigenze. Inoltre, è possibile abilitare o disabilitare Spark Advisor per i notebook all'interno di un'area di lavoro, in base alle preferenze.
È possibile accedere alle impostazioni di Spark Advisor a livello di Notebook Fabric per sfruttarne i vantaggi e garantire un'esperienza di creazione notebook produttiva.