Tous les produits
Search
Centre de documentation

MaxCompute:Connecteur Spark

Dernière mise à jour :Aug 21, 2026

Le stockage ouvert MaxCompute permet à Spark d'utiliser un connecteur pour appeler l'API Storage et lire les données directement depuis MaxCompute. Cette approche simplifie la lecture des données et améliore les performances d'accès. L'intégration de Spark au stockage de données MaxCompute offre des capacités de traitement et d'analyse efficaces, flexibles et puissantes.

Périmètre

  • Lorsqu'un moteur tiers accède à MaxCompute :

    • Vous pouvez lire les données des tables standard, des tables partitionnées, des tables clusterisées, des Delta Tables et des vues matérialisées.

    • Vous ne pouvez pas lire les données des tables externes MaxCompute ni des vues logiques.

  • Le connecteur ne prend pas en charge la lecture du type de données JSON.

Procédure

  1. Activer MaxCompute et créer un projet MaxCompute.

  2. Acheter un groupe de ressources exclusif pour Data Transmission Service (abonnement) .

  3. Déployez un environnement de développement Spark.

    Cliquez sur Spark pour télécharger un package Spark pour les versions Spark 3.2.x - Spark 3.5.x, puis décompressez le package dans un dossier local.

    1. Pour configurer l'environnement de développement Spark sur un système d'exploitation Linux, consultez la rubrique Configurer un environnement de développement Linux.

    2. Pour configurer l'environnement de développement Spark sur un système d'exploitation Windows, consultez la rubrique Configurer un environnement de développement Windows.

  4. Téléchargez et compilez le connecteur Spark. Seules les versions Spark 3.2.x à 3,5.x sont prises en charge. Cette rubrique utilise Spark 3.3.1 à titre d'exemple.

    Exécutez la commande git clone pour télécharger le package du connecteur Spark. Assurez-vous que Git est installé dans votre environnement, sinon une erreur se produira lors de l'exécution de la commande.

    ## Download the Spark connector.
    git clone https://github.com/aliyun/aliyun-maxcompute-data-collectors.git
    
    ## Switch to the spark-connector folder.
    cd aliyun-maxcompute-data-collectors/spark-connector 
    
    ## Compile the connector.
    mvn clean package
    
    ## Location of the datasource JAR package.
    datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar
    
    ## Copy the datasource JAR package to the $SPARK_HOME/jars/ folder.
    cp datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar $SPARK_HOME/jars/
  5. Configurez les informations d'accès au compte MaxCompute.

    Dans le dossier conf de votre installation Spark, créez un fichier spark-defaults.conf :

    cd $SPARK_HOME/conf
    vim spark-defaults.conf

    Ajoutez les informations de compte suivantes au fichier spark-defaults.conf :

    ## Configure the account in spark-defaults.conf.
    spark.hadoop.odps.project.name=doc_test
    spark.hadoop.odps.access.id=L********************
    spark.hadoop.odps.access.key=*******************
    spark.hadoop.odps.end.point=http://service.cn-beijing.maxcompute.aliyun.com/api
    spark.hadoop.odps.tunnel.quota.name=ot_xxxx_p#ot_xxxx
    ## Configure the MaxCompute catalog.
    spark.sql.catalog.odps=org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog 
    spark.sql.extensions=org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions
  6. Accédez à MaxCompute via le connecteur Spark.

    1. Exécutez la commande suivante dans le dossier bin de votre installation Spark pour démarrer le client Spark SQL :

      cd $SPARK_HOME/bin
      spark-sql
    2. Interrogez les tables du projet MaxCompute :

      SHOW tables in odps.doc_test;

      doc_test est un exemple de nom de projet MaxCompute. Remplacez-le par le nom de votre projet MaxCompute.

    3. Créez une table :

      CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT);
    4. Lisez les données de la table :

      SELECT * FROM odps.doc_test.mc_test_table;
    5. Créez une table partitionnée :

       CREATE TABLE odps.doc_test.mc_test_table_pt (name STRING, num BIGINT) PARTITIONED BY (pt1 STRING, pt2 STRING);
    6. Lisez les données de la table partitionnée :

      SELECT * FROM odps.doc_test.mc_test_table_pt;

      Le résultat suivant s'affiche :

      test1   1       2018    0601
      test2   2       2018    0601
      Time taken: 1.312 seconds, Fetched 2 row(s)
    7. Supprimez la table :

      DROP TABLE IF EXISTS odps.doc_test.mc_test_table;