

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Il flusso di lavoro di Spark Upgrade Agent in dettaglio
<a name="emr-spark-upgrade-agent-workflow-details"></a>

Per avviare il processo di aggiornamento, è necessario clonare il codice dell'applicazione Spark nel tuo ambiente di sviluppo (localmente o EC2 [Amazon SageMaker Unified Studio IDE Spaces](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/create-space.html)), preferibilmente con il controllo della versione Git inizializzato. Inoltre, un cluster EMR che esegue la versione Spark di destinazione deve essere fornito e accessibile. Infine, è necessario configurare un bucket path Amazon S3 designato per archiviare gli elementi di distribuzione e il riepilogo dell'aggiornamento durante tutto il processo di aggiornamento.

Una volta stabiliti questi requisiti, puoi inviare una richiesta come la seguente per avviare il flusso di lavoro di aggiornamento:

```
Upgrade my Spark application <local-project-path> from EMR version 6.0.0 to 7.12.0.   
Use EMR-EC2 Cluster <cluster-id> to run the validation and s3 paths   
s3://<please fill in your staging bucket path> to store updated application artifacts.
```

[A questo punto, l'agente orchestrerà l'aggiornamento utilizzando strumenti specializzati (per maggiori dettagli).](emr-spark-upgrade-agent-tools.md) Il flusso di lavoro segue questi passaggi:

1. **Genera piano**: l'agente analizzerà la struttura del progetto e genererà un piano di aggiornamento. Rivedi il piano e fornisci il tuo consenso per procedere.

1. **Revisione e personalizzazione del piano**: quando viene richiesto di rivedere il piano, sono disponibili diverse opzioni:

   1. **Procedi così com'è**: accetta il piano e prosegui con l'esecuzione

   1. **Fornisci feedback**: personalizza il piano in base a:

      1. Rimozione dei passaggi non necessari - Esempio: rimuovi qualsiasi esecuzione del test di integrazione. Solo compile/build localmente, quindi procedi alla convalida EMR.

      1. Aggiungere passaggi aggiuntivi - Esempio: aggiungere un passaggio per eseguire il file di test `tests/test_jobs/test_etl_job_x.py` prima della convalida EMR.

      1. Modifica dell'approccio di aggiornamento - Esempio: applica Python 3.10 e Java 17 durante le fasi di compilazione e convalida.

1. L'agente rigenererà il piano in base al feedback dell'utente e chiederà nuovamente il consenso. Questo processo continua fino all'approvazione del piano finale

1. **Compilazione e compilazione**: l'agente apporterà modifiche iterative per correggere gli errori di compilazione fino alla corretta compilazione e compilazione dell'applicazione.

1. **Esegui test di unità e integrazione**: se il progetto prevede dei test, l'agente eseguirà i test dopo una compilazione riuscita. Se uno dei test fallisce, l'agente modificherà il codice sorgente in modo iterativo fino al superamento dei test prima di procedere alla convalida EMR.

1. **Correzioni e convalida del runtime**: l'agente convaliderà l'applicazione sul cluster EMR di destinazione e correggerà iterativamente eventuali errori di runtime fino al completamento della convalida. Al termine, verrà visualizzato un riepilogo di tutte le modifiche apportate per motivi di compatibilità.

1. **Riepilogo dell'aggiornamento**: una volta completato l'aggiornamento, l'agente fornirà un riepilogo di tutte le modifiche al codice e alla configurazione, degli aggiornamenti delle versioni delle dipendenze e di eventuali discrepanze rilevate nella qualità dei dati da esaminare.