Condividi tramite


Advisor apache Spark per consigli in tempo reale sui notebook

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 raccomandazioni per l'ottimizzazione del codice, esegue l'analisi degli errori e individua la causa radice degli errori.

Consigli predefiniti

Spark Advisor, uno strumento integrato con Impulse, fornisce modelli predefiniti per rilevare e risolvere i problemi nelle applicazioni Apache Spark. Questo articolo illustra alcuni dei 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'

I risultati incoerenti o imprecisi possono essere restituiti quando si lavora con 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 ogni esempio recupera, partizioni e ordina il frame di dati all'interno delle partizioni. La distribuzione dei dati tra partizioni e ordinamento è importante sia per randomSplit() che per sample(). Se una delle due modifiche viene apportata al refetch dei dati, potrebbero essere presenti duplicati o valori mancanti tra le divisioni. E lo stesso esempio che usa lo stesso valore di inizializzazione 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.

Nome tabella/vista 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.

Non è possibile 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 l'espressione con 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. È consigliabile abilitare la configurazione "spark.recommend.nonEqJoinConvertRule.enable", che consente di convertire il join attivato dalla condizione "Or" in SMJ o BHJ per accelerare questa query.

Esperienza utente

Apache Spark Advisor visualizza i consigli, incluse informazioni, avvisi ed errori, nell'output della cella del notebook in tempo reale.

  • Informazioni Screenshot che mostra le informazioni.

  • Avviso Screenshot che mostra l'avviso.

  • Errore Screenshot che mostra gli errori.

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 di Infrastruttura per sfruttare i vantaggi e garantire un'esperienza di creazione di notebook produttiva.

Screenshot che mostra l'impostazione di Spark Advisor.