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 :

  1. Recherchez Spark dans le volet Activités du pipeline, puis faites glisser une activité Spark vers le canevas du pipeline.

  2. Sélectionnez la nouvelle activité Spark sur le canevas si elle n’est pas déjà sélectionnée.

  3. 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.

    Shows the UI for a Spark activity.

  4. 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.

    Shows the UI for the Script / Jar tab for a Spark activity.

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
	

Consultez les articles suivants qui expliquent comment transformer des données par d’autres moyens :