Tous les produits
Search
Centre de documentation

DataWorks:Nœud MaxCompute Spark

Dernière mise à jour :Aug 25, 2026

Spark on MaxCompute prend en charge l'exécution des tâches en mode local et en mode cluster. Dans DataWorks, vous pouvez exécuter les tâches hors ligne Spark on MaxCompute en mode cluster afin de les intégrer à d'autres types de nœuds pour la planification. Cette rubrique explique comment configurer et planifier des tâches Spark on MaxCompute à l'aide de DataWorks.

Présentation

Spark on MaxCompute est un service de calcul fourni par MaxCompute, compatible avec Spark open source. Il offre un framework de calcul Spark basé sur un système unifié de ressources de calcul et d'autorisations. Vous pouvez ainsi soumettre et exécuter des tâches Spark en utilisant des workflows de développement familiers, répondant à divers besoins de traitement et d'analyse des données. Dans DataWorks, utilisez le nœud MaxCompute Spark pour planifier et exécuter des tâches Spark on MaxCompute, et les intégrer à d'autres tâches.

Spark on MaxCompute permet le développement en Java, Scala et Python, et exécute les tâches en mode local ou en mode cluster. Lorsque vous exécutez une tâche hors ligne Spark on MaxCompute dans DataWorks, celle-ci s'exécute en mode cluster. Pour plus d'informations sur les modes d'exécution de Spark on MaxCompute, consultez la section Modes d'exécution.

Prérequis en matière d'autorisations

Pour développer des tâches, les utilisateurs RAM doivent être ajoutés à l'espace de travail correspondant et se voir attribuer le rôle Development ou Workspace Administrator . Le rôle Workspace Administrator inclut de nombreuses autorisations et doit être attribué avec prudence. Pour savoir comment ajouter un membre à un espace de travail, consultez la page Ajouter des membres à un espace de travail.

Remarque

Si vous utilisez un compte Alibaba Cloud, vous pouvez ignorer cette étape.

Limites

Si vous rencontrez une erreur lors de la soumission d'un nœud MaxCompute Spark utilisant Spark 3.x, vous devez acheter et utiliser un groupe de ressources serverless. Pour plus d'informations, consultez la page Utiliser un groupe de ressources serverless.

Avant de commencer

Le nœud MaxCompute Spark prend en charge l'exécution de tâches hors ligne Spark on MaxCompute à l'aide de Java/Scala et de Python. Les étapes de développement et l'interface de configuration diffèrent selon le langage. Choisissez un langage en fonction de vos besoins métier.

Java/Scala

Avant d'exécuter du code Java ou Scala dans un nœud MaxCompute Spark, développez le code de la tâche Spark on MaxCompute localement, puis téléchargez-le en tant que ressource MaxCompute vers DataWorks. Procédez comme suit :

  1. Configurez l'environnement de développement.

    Préparez un environnement de développement pour l'exécution des tâches Spark on MaxCompute en fonction de votre système d'exploitation. Pour plus d'informations, consultez les pages Configurer un environnement de développement Linux et Configurer un environnement de développement Windows.

  2. Développez le code Java/Scala.

    Avant d'exécuter le code dans un nœud MaxCompute Spark, développez votre code Spark on MaxCompute localement ou dans un environnement existant. Nous vous recommandons d'utiliser le modèle de projet exemple fourni par Spark on MaxCompute.

  3. Empaquetez le code et téléchargez-le vers DataWorks.

    Une fois le développement terminé, empaquetez votre code et téléchargez-le vers DataWorks en tant que ressource MaxCompute. Pour plus d'informations, consultez la page Gestion des ressources.

Python with default environment

Vous pouvez développer des tâches PySpark dans DataWorks en écrivant du code directement dans une ressource Python. Vous pouvez ensuite soumettre et exécuter le code à l'aide d'un nœud MaxCompute Spark. Pour des exemples de développement, consultez la page Exemples de développement PySpark.

Remarque

Si l'environnement par défaut ne répond pas aux exigences de dépendance de votre tâche, reportez-vous à la section Python (using a custom environment) pour préparer un environnement Python personnalisé. Vous pouvez également utiliser un nœud PyODPS 2 ou un nœud PyODPS 3, qui offrent une meilleure prise en charge des ressources Python.

Python with custom environment

Si l'environnement Python par défaut ne répond pas à vos besoins métier, suivez les étapes ci-dessous pour utiliser un environnement Python personnalisé afin d'exécuter votre tâche Spark on MaxCompute.

  1. Préparez un environnement Python localement.

    Reportez-vous à la page Versions Python PySpark et prise en charge des dépendances pour configurer l'environnement Python requis.

  2. Empaquetez l'environnement et téléchargez-le vers DataWorks.

    Compressez l'environnement Python dans un package .zip et téléchargez-le vers DataWorks en tant que ressource MaxCompute. Ce package devient l'environnement d'exécution de votre tâche Spark on MaxCompute.

Paramètres

DataWorks exécute les tâches hors ligne Spark on MaxCompute en mode Cluster. En mode Cluster, vous devez spécifier un point d'entrée de programme personnalisé main. La tâche Spark correspondante se termine lorsque la fonction main se termine avec un statut Success ou Fail. De plus, ajoutez les configurations du fichier spark-defaults.conf une par une aux configurations du nœud MaxCompute Spark. Cela inclut, par exemple, le nombre d'executor s, la taille de la mémoire et la configuration spark.hadoop.odps.runtime.end.point.

Remarque

Vous n'avez pas besoin de télécharger le fichier spark-defaults.conf . Ajoutez plutôt les configurations contenues dans le fichier spark-defaults.conf une par une aux éléments de configuration d'un nœud MaxCompute Spark.

Java/Scala

Paramètre

Description

Commande spark-submit

Spark Version

La version de Spark. Valeurs valides : Spark 1.x, Spark 2.x et Spark 3.x.

Remarque

Si vous rencontrez une erreur lors de la soumission d'un nœud MaxCompute Spark utilisant la version Spark 3.x, achetez et utilisez un groupe de ressources serverless. Pour plus d'informations, consultez la page Utiliser un groupe de ressources serverless.

Language

Le langage de programmation. Sélectionnez Java/Scala ou Python en fonction du langage utilisé pour développer votre tâche Spark on MaxCompute.

Main JAR Resource

Spécifie le fichier de ressource JAR principal pour la tâche.

Le fichier de ressource doit être téléchargé vers DataWorks et validé. Pour plus d'informations, consultez la page Gestion des ressources.

app jar or Python file

Configuration Item

Spécifie les éléments de configuration pour la soumission de la tâche. Notez les points suivants :

  • Vous n'avez pas besoin de configurer spark.hadoop.odps.access.id, spark.hadoop.odps.access.key et spark.hadoop.odps.end.point, car ils utilisent par défaut les valeurs du projet MaxCompute. Si vous avez des exigences spécifiques, vous pouvez les configurer explicitement pour remplacer les valeurs par défaut.

  • Vous n'avez pas besoin de télécharger le fichier spark-defaults.conf. Ajoutez plutôt les configurations issues de spark-defaults.conf une par une aux configurations du nœud MaxCompute Spark, telles que le nombre d'executors, la taille de la mémoire et la configuration spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Main Class

Configurez le nom de la classe principale. Ce paramètre est requis lorsque le langage de développement est Java/Scala.

--class CLASS_NAME

Parameter

Ajoutez des paramètres selon vos besoins et séparez-les par un espace. DataWorks prend en charge les paramètres de planification. Le format du Parameter est ${variable_name}. Une fois la configuration terminée, attribuez une valeur à la variable dans la section Scheduling Parameters du volet Scheduling Settings situé dans la barre de navigation de droite.

Pour connaître les formats pris en charge des valeurs des paramètres de planification, consultez la page Sources et expressions des paramètres de planification.

[app arguments]

JAR Resources

Cette option est prise en charge uniquement lorsque le langage de programmation est Java/Scala.

Les fichiers de ressource doivent être téléchargés vers DataWorks et validés. Pour plus d'informations, consultez la page Gestion des ressources.

Commande de ressource :

--jars JARS

File Resources

Spécifie les ressources de fichier pour la tâche.

--files FILES

Archive Resources

Spécifie les ressources d'archive pour la tâche. Seules les archives .zip sont prises en charge.

--archives ARCHIVES

Python

Paramètre

Description

Commande spark-submit

Spark Version

La version de Spark. Valeurs valides : Spark 1.x, Spark 2.x et Spark 3.x.

Remarque

Si vous rencontrez une erreur lors de la soumission d'un nœud MaxCompute Spark utilisant la version Spark 3.x, achetez et utilisez un groupe de ressources serverless. Pour plus d'informations, consultez la page Utiliser un groupe de ressources serverless.

Language

Le langage de programmation. Sélectionnez Python en fonction du langage utilisé pour développer votre tâche Spark on MaxCompute.

Main Python Resource

Spécifie le fichier de ressource Python principal pour la tâche.

Le fichier de ressource doit être téléchargé vers DataWorks et validé. Pour plus d'informations, consultez la page Gestion des ressources.

app jar or Python file

Configuration Item

Spécifie les éléments de configuration pour la soumission de la tâche. Notez les points suivants :

  • Vous n'avez pas besoin de configurer spark.hadoop.odps.access.id, spark.hadoop.odps.access.key et spark.hadoop.odps.end.point, car ils utilisent par défaut les valeurs du projet MaxCompute (mais peuvent être configurés explicitement pour des raisons spécifiques afin de remplacer les valeurs par défaut).

  • Vous n'avez pas besoin de télécharger le fichier spark-defaults.conf. Ajoutez plutôt chaque configuration issue de spark-defaults.conf aux paramètres de configuration du nœud MaxCompute Spark, tels que le nombre d'executors, la taille de la mémoire et la configuration spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Parameter

Ajoutez des paramètres selon vos besoins, séparés par des espaces. DataWorks prend en charge les paramètres de planification, qui doivent être au format ${variable_name} dans le champ Parameter. Après avoir configuré les paramètres, accédez au volet Scheduling Settings dans la barre de navigation de droite et attribuez une valeur à chaque variable dans la section Scheduling Parameters.

Pour connaître les formats pris en charge des valeurs des paramètres de planification, consultez la page Sources et expressions des paramètres de planification.

[app arguments]

Python Resources

Cette option peut être utilisée uniquement lorsque le langage de développement est Python.

Les fichiers de ressource doivent être téléchargés vers DataWorks et validés. Pour plus d'informations, consultez la page Gestion des ressources.

--py-files PY_FILES

File Resources

Spécifie les ressources de fichier pour la tâche.

--files FILES

Archive Resources

Spécifie les ressources d'archive pour la tâche.

--archives ARCHIVES

Procédure

  1. Créez une ressource.

    1. Dans la barre de navigation de gauche de la page Data Studio, recherchez Resource Management et cliquez sur Create. Créez une ressource Python de type MaxCompute Spark et nommez-la spark_is_number.py. Pour plus d'informations, consultez la page Gestion des ressources. Le code est le suivant :

      # -*- coding: utf-8 -*-
      import sys
      from pyspark.sql import SparkSession
      try:
          # for python 2
          reload(sys)
          sys.setdefaultencoding('utf8')
      except:
          # python 3 not needed
          pass
      if __name__ == '__main__':
          spark = SparkSession.builder\
              .appName("spark sql")\
              .config("spark.sql.broadcastTimeout", 20 * 60)\
              .config("spark.sql.crossJoin.enabled", True)\
              .config("odps.exec.dynamic.partition.mode", "nonstrict")\
              .config("spark.sql.catalogImplementation", "odps")\
              .getOrCreate()
      def is_number(s):
          try:
              float(s)
              return True
          except ValueError:
              pass
          try:
              import unicodedata
              unicodedata.numeric(s)
              return True
          except (TypeError, ValueError):
              pass
          return False
      print(is_number('foo'))
      print(is_number('1'))
      print(is_number('1.3'))
      print(is_number('-1.37'))
      print(is_number('1e3'))
    2. Enregistrez la ressource.

  2. Dans le nœud MaxCompute Spark créé, configurez les paramètres du nœud et les paramètres de planification. Pour plus d'informations, consultez la section Paramètres.

  3. Pour exécuter la tâche selon une planification, configurez ses propriétés de planification en fonction de vos besoins métier. Pour plus d'informations, consultez la page Configuration de la planification des nœuds.

  4. Une fois la tâche du nœud configurée, déployez le nœud. Pour plus d'informations, consultez la page Déployer des nœuds/workflows.

  5. Après le déploiement de la tâche, accédez à Operation Center pour consulter l'état d'exécution de la tâche périodique. Pour plus d'informations, consultez la page Prise en main d'Operation Center.

    Remarque
    • Les nœuds MaxCompute Spark ne disposent pas de point d'entrée d'exécution dans Data Studio. Vous devez exécuter les tâches Spark dans Operation Center, dans l'environnement de développement.

    • Une fois l'instance de remplissage des données exécutée avec succès, ouvrez l'URL de suivi dans le journal d'exécution de l'instance pour afficher le résultat.

Références