Transformer des données à l'aide d'une activité Spark dans Azure Data Factory et Synapse Analytics
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
L'activité Spark dans une fabrique de données et dans des pipelines Synapse exécute un programme Spark sur votre propre cluster ou sur un cluster HDInsight à la demande. Cet article s'appuie sur l'article Activités de transformation des données qui présente une vue d'ensemble de la transformation des données et les activités de transformation prises en charge. Quand vous utilisez un service lié Spark à la demande, le service crée automatiquement un cluster Spark pour vous, juste le temps nécessaire pour traiter les données, puis il le supprime une fois le traitement terminé.
Ajouter une activité Spark à un pipeline avec l’interface utilisateur
Pour utiliser une activité Spark dans un pipeline, effectuez les étapes suivantes :
Recherchez Spark dans le volet Activités du pipeline, puis faites glisser une activité Spark vers le canevas du pipeline.
Sélectionnez la nouvelle activité Spark sur le canevas si elle n’est pas déjà sélectionnée.
Sélectionnez l’onglet Cluster HDI pour sélectionner ou créer un nouveau service lié à un cluster HDInsight qui sera utilisé pour exécuter l’activité Spark.
Sélectionnez l’onglet Script/Jar pour sélectionner ou créer un service lié de tâche à un compte de stockage Azure qui hébergera votre script. Spécifiez un chemin d’accès au fichier à exécuter ici. Vous pouvez également configurer des détails avancés, notamment un utilisateur proxy, une configuration de débogage et des arguments et des paramètres de configuration Spark à transmettre au script.
Propriétés de l'activité Spark
Voici l’exemple de définition JSON d’une activité 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"
]
}
}
Le tableau suivant décrit les propriétés JSON utilisées dans la définition JSON :
Propriété | Description | Obligatoire |
---|---|---|
name | Nom de l'activité dans le pipeline. | Oui |
description | Texte décrivant l’activité. | Non |
type | Pour l’activité Spark, le type d’activité est HDinsightSpark. | Oui |
linkedServiceName | Nom du service lié HDInsight Spark sur lequel s’exécute le programme Spark. Pour en savoir plus sur ce service lié, consultez l’article Services liés de calcul. | Oui |
SparkJobLinkedService | Service lié de stockage Azure qui contient le fichier de travail, les dépendances et les journaux d’activité Spark. Seuls les services liés Stockage Blob Azure et ADLS Gen2 sont pris en charge ici. Si vous ne spécifiez pas de valeur pour cette propriété, le stockage associé au cluster HDInsight est utilisé. La valeur de cette propriété ne peut être qu’un service lié de Stockage Azure. | Non |
rootPath | Conteneur d’objets blob Azure et dossier contenant le fichier Spark. Le nom de fichier respecte la casse. Reportez-vous à la section décrivant la structure des dossiers (section suivante) pour obtenir plus d’informations sur la structure de ce dossier. | Oui |
entryFilePath | Chemin d’accès relatif au dossier racine du code/package Spark. Le fichier d’entrée doit être un fichier Python ou un fichier .jar. | Oui |
ClassName | Classe principale Java/Spark de l’application. | Non |
arguments | Liste d’arguments de ligne de commande du programme Spark. | Non |
proxyUser | Identité du compte d’utilisateur à emprunter pour exécuter le programme Spark. | Non |
sparkConfig | Spécifiez les valeurs des propriétés de configuration de Spark listées dans la rubrique : Configuration Spark - Propriétés de l’application. | Non |
getDebugInfo | Spécifie quand les fichiers journaux de Spark sont copiés vers le stockage Azure utilisé par le cluster HDInsight (ou) spécifié par sparkJobLinkedService. Valeurs autorisées : None, Always ou Failure. Valeur par défaut : Aucun. | Non |
Structure de dossiers
Les travaux Spark sont plus extensibles que les travaux Pig/Hive. Pour les travaux Spark, vous pouvez fournir plusieurs dépendances, telles que des packages jar (placés dans le CLASSPATH Java), des fichiers Python (placés dans le PYTHONPATH) et tout autre fichier.
Créez la structure de dossiers suivante dans le stockage Blob Azure référencé par le service lié HDInsight. Ensuite, téléchargez les fichiers dépendants dans les sous-dossiers appropriés dans le dossier racine représenté par entryFilePath. Par exemple, chargez les fichiers Python dans le sous-dossier pyFiles et les fichiers jar dans le sous-dossier jars du dossier racine. Lors de l'exécution, le service attend la structure de dossiers suivante dans le stockage Blob Azure :
Path | Description | Obligatoire | Type |
---|---|---|---|
. (racine) |
Chemin d’accès racine du travail Spark dans le service lié de stockage | Oui | Dossier |
<défini par l’utilisateur > | Chemin d’accès pointant vers le fichier d’entrée du travail Spark | Oui | Fichier |
./jars | Tous les fichiers dans ce dossier sont chargés et placés dans le classpath Java du cluster | Non | Dossier |
./pyFiles | Tous les fichiers dans ce dossier sont téléchargés et placés dans le PYTHONPATH du cluster | Non | Dossier |
./files | Tous les fichiers dans ce dossier sont téléchargés et placés dans le répertoire de travail de l’exécuteur | Non | Dossier |
./archives | Tous les fichiers dans ce dossier ne sont pas compressés | Non | Dossier |
./logs | Dossier qui contient les journaux d’activité à partir du cluster Spark. | Non | Dossier |
Voici un exemple de stockage qui contient deux fichiers de travail Spark dans le stockage Blob Azure référencé par le service lié 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
Contenu connexe
Consultez les articles suivants qui expliquent comment transformer des données par d’autres moyens :