全部产品
Search
文档中心

MaxCompute:Spark Connector

更新时间:Dec 05, 2025

Open Storage MaxCompute memungkinkan Spark menggunakan connector untuk memanggil Storage API dan membaca data langsung dari MaxCompute. Pendekatan ini menyederhanakan proses pembacaan data sekaligus meningkatkan kinerja akses. Dengan mengintegrasikan kemampuan penyimpanan data MaxCompute, Spark menyediakan pemrosesan dan analisis data yang efisien, fleksibel, serta andal.

Catatan penggunaan

  • Saat mesin pihak ketiga mengakses MaxCompute:

    • Anda dapat membaca tabel standar, tabel partisi, tabel terkluster, Delta Tables, dan tampilan yang di-materialisasi.

    • Anda tidak dapat membaca tabel eksternal MaxCompute atau tampilan logis.

  • Tipe data JSON tidak didukung untuk dibaca.

Prosedur

  1. Aktifkan MaxCompute dan buat proyek MaxCompute.

  2. Beli kelompok sumber daya Data Transmission Service berlangganan.

  3. Deploy lingkungan developer Spark.

    Gunakan paket Spark versi Spark 3.2.x - Spark 3.5.x. Anda dapat mengunduh paket tersebut melalui Spark dan mengekstraknya ke folder lokal.

    1. Untuk menyiapkan lingkungan pada sistem operasi Linux, lihat Menyiapkan lingkungan developer Linux.

    2. Untuk menyiapkan lingkungan pada sistem operasi Windows, lihat Menyiapkan lingkungan developer Windows.

  4. Unduh dan kompilasi Spark connector. (Hanya Spark 3.2.x hingga 3.5.x yang didukung. Topik ini menggunakan Spark 3.3.1 sebagai contoh.)

    Jalankan perintah git clone untuk mengunduh paket instalasi Spark connector. Pastikan Git telah diinstal di lingkungan Anda; jika tidak, perintah tersebut akan menghasilkan error.

    ## Unduh Spark connector:
    git clone https://github.com/aliyun/aliyun-maxcompute-data-collectors.git
    
    ## Beralih ke folder spark-connector
    cd aliyun-maxcompute-data-collectors/spark-connector 
    
    ## Kompilasi
    mvn clean package
    
    ## Lokasi paket JAR Datasource
    datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar
    
    ## Salin paket JAR Datasource ke folder $SPARK_HOME/jars/
    cp datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar $SPARK_HOME/jars/
  5. Konfigurasikan informasi akses akun MaxCompute Anda.

    Di folder conf Spark, buat file spark-defaults.conf:

    cd $SPARK_HOME/conf
    vim spark-defaults.conf

    Konfigurasikan informasi akun dalam file spark-defaults.conf:

    ## Konfigurasikan akun di 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
    ## Konfigurasikan 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. Gunakan Spark connector untuk mengakses MaxCompute.

    1. Jalankan perintah berikut di folder bin Spark untuk memulai client Spark SQL:

      cd $SPARK_HOME/bin
      spark-sql
    2. Kueri tabel-tabel dalam proyek MaxCompute:

      SHOW tables in odps.doc_test;

      doc_test adalah contoh nama proyek MaxCompute. Gantilah dengan nama proyek aktual Anda.

    3. Buat tabel:

      CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT);
    4. Baca data dari tabel:

      SELECT * FROM odps.doc_test.mc_test_table;
    5. Buat tabel partisi:

       CREATE TABLE odps.doc_test.mc_test_table_pt (name STRING, num BIGINT) PARTITIONED BY (pt1 STRING, pt2 STRING);
    6. Baca data dari tabel partisi:

      SELECT * FROM odps.doc_test.mc_test_table_pt;

      Kode berikut memberikan contoh hasilnya:

      test1   1       2018    0601
      test2   2       2018    0601
      Time taken: 1.312 seconds, Fetched 2 row(s)
    7. Hapus tabel:

      DROP TABLE IF EXISTS odps.doc_test.mc_test_table;