Condividi tramite


Trasforma i dati utilizzando l'attività di Spark in Azure Data Factory e Synapse Analytics

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

L'attività Spark in una pipeline di Data Factory e Synapse esegue un programma Spark nel cluster HDInsight personale o on demand. Questo articolo si basa sull'articolo relativo alle attività di trasformazione dei dati che presenta una panoramica generale della trasformazione dei dati e le attività di trasformazione supportate. Quando si utilizza un servizio collegato Spark su richiesta, il servizio crea automaticamente un cluster Spark giusto in tempo per elaborare i dati e quindi elimina il cluster una volta completata l'elaborazione.

Aggiungere un'attività Spark all'interno di una pipeline tramite l'interfaccia utente

Per usare un'attività Spark in una pipeline, completare la procedura seguente:

  1. Cercare Spark nel riquadro Attività della pipeline, quindi trascinare un'attività Spark nel canvas della pipeline.

  2. Selezionare la nuova attività Spark nell'area di disegno, se non è già selezionata.

  3. Selezionare la scheda Cluster HDI per selezionare o creare un nuovo servizio collegato in un cluster HDInsight che verrà usato per eseguire l'attività Spark.

    Mostra l'interfaccia utente per un'attività Spark.

  4. Selezionare la scheda Script/Jar per selezionare o creare un nuovo servizio collegato di processo a un account Archiviazione di Azure che ospiterà lo script. Specificare il percorso del file da eseguire. È anche possibile configurare dettagli avanzati, tra cui un utente proxy, una configurazione di debug e argomenti e parametri di configurazione spark da passare allo script.

    Mostra l'interfaccia utente per la scheda Script/Jar per un'attività Spark.

Proprietà dell'attività Spark

Ecco la definizione JSON di esempio di un'attività Spark:

{
    "name": "Spark Activity",
    "description": "Description",
    "type": "HDInsightSpark",
    "linkedServiceName": {
        "referenceName": "MyHDInsightLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "sparkJobLinkedService": {
            "referenceName": "MyAzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "rootPath": "adfspark",
        "entryFilePath": "test.py",
        "sparkConfig": {
            "ConfigItem1": "Value"
        },
        "getDebugInfo": "Failure",
        "arguments": [
            "SampleHadoopJobArgument1"
        ]
    }
}

La tabella seguente fornisce le descrizioni delle proprietà JSON usate nella definizione JSON:

Proprietà Descrizione Richiesto
nome Nome dell'attività nella pipeline.
descrizione Testo che descrive l'attività. No
tipo Il tipo di attività per l'attività Spark è HDInsightSpark.
nomeServizioCollegato Nome del servizio collegato di HDInsight Spark in cui viene eseguito il programma Spark. Per informazioni su questo servizio collegato, vedere l'articolo Servizi collegati di calcolo.
SparkJobLinkedService Il servizio collegato di Archiviazione di Azure che contiene il file del processo Spark, le dipendenze e i log. Sono supportati solo Archiviazione BLOB di Azure e ADLS Gen2. Se non si specifica un valore per questa proprietà, viene usato lo spazio di archiviazione associato al cluster HDInsight. Il valore di questa proprietà può essere solo un servizio collegato di Archiviazione di Azure. No
rootPath Il contenitore BLOB di Azure e la cartella che contiene il file Spark. Il nome del file distingue tra maiuscole e minuscole. Per informazioni dettagliate sulla struttura della cartella, fare riferimento alla prossima sezione, relativa alla struttura delle cartelle.
entryFilePath Percorso relativo alla cartella radice del pacchetto/codice Spark. Il file di ingresso deve essere un file Python o un file .jar.
className Classe principale Java/Spark dell'applicazione No
argomenti Elenco di argomenti della riga di comando del programma Spark. No
proxyUser Account utente da rappresentare per eseguire il programma Spark No
sparkConfig Specificare i valori delle proprietà di configurazione di Spark elencati nell'argomento: Configurazione di SparK: proprietà dell'applicazione. No
getDebugInfo Specifica quando i file di log spark vengono copiati nella risorsa di archiviazione Azure usata dal cluster HDInsight (o) specificato da sparkJobLinkedService. Valori consentiti: Nessuno, Sempre o Errore. Valore predefinito: None. No

Struttura delle cartelle

I job Spark sono più estendibili dei job Pig/Hive. Per i processi Spark, è possibile fornire più dipendenze, ad esempio pacchetti JAR (inseriti nella Java CLASSPATH), Python file (posizionati in PYTHONPATH) e qualsiasi altro file.

Creare la struttura di cartelle seguente nell'archivio BLOB di Azure a cui fa riferimento il servizio collegato HDInsight. Caricare i file dipendenti nelle sottocartelle appropriate all'interno della cartella radice rappresentata da entryFilePath. Ad esempio, caricare i file Python nella sottocartella pyFiles e i file jar nella sottocartella JARs della cartella radice. In fase di esecuzione, il servizio prevede la struttura di cartelle seguente nell'archivio BLOB di Azure:

Percorso Descrizione Richiesto Tipo
. (radice) Percorso radice del processo Spark nel servizio collegato di archiviazione Cartella
<definito dall'utente > Percorso che punta al file di input dell'attività Spark file
./jars Tutti i file in questa cartella vengono caricati e inseriti nel classpath Java del cluster No Cartella
./pyFiles Tutti i file in questa cartella vengono caricati e inseriti nel PYTHONPATH del cluster No Cartella
./files Tutti i file in questa cartella vengono caricati e collocati nella directory di lavoro dell'executor No Cartella
./archivi Tutti i file in questa cartella sono decompressi No Cartella
./logs La cartella contenente i log del cluster Spark. No Cartella

Di seguito è riportato un esempio di archiviazione contenente due file di processo Spark nel Archiviazione BLOB di Azure a cui fa riferimento il servizio collegato HDInsight.

SparkJob1
	main.jar
	files
		input1.txt
		input2.txt
	jars
		package1.jar
		package2.jar
	logs
	
	archives
	
	pyFiles

SparkJob2
	main.py
	pyFiles
		scrip1.py
		script2.py
	logs
	
	archives
	
	jars
	
	files
	

Vedere gli articoli seguenti, che illustrano altre modalità di trasformazione dei dati: