All Products
Search
Document Center

DataWorks:Kembangkan tugas MaxCompute Spark

Last Updated:Jun 21, 2026

Anda dapat menjalankan tugas Spark on MaxCompute dalam mode lokal atau kluster. Anda juga dapat menjalankan tugas Spark on MaxCompute secara offline dalam mode kluster di DataWorks untuk mengintegrasikannya dengan jenis node lain guna penjadwalan. Topik ini menjelaskan cara mengonfigurasi dan menjadwalkan tugas Spark on MaxCompute di DataWorks.

Ikhtisar

Spark on MaxCompute adalah layanan komputasi MaxCompute yang kompatibel dengan Spark open-source. Layanan ini menyediakan kerangka kerja komputasi Spark di atas sumber daya komputasi terpadu dan sistem izin set data, memungkinkan Anda mengirimkan dan menjalankan tugas Spark menggunakan metode pengembangan yang sudah dikenal untuk memenuhi berbagai kebutuhan pemrosesan dan analisis data. Di DataWorks, Anda dapat menggunakan node MaxCompute Spark untuk menjadwalkan dan menjalankan tugas Spark on MaxCompute serta mengintegrasikannya dengan tugas lainnya.

Spark on MaxCompute mendukung pengembangan dalam Java, Scala, dan Python, serta menjalankan tugas dalam mode lokal atau mode kluster. Di DataWorks, tugas offline Spark on MaxCompute dijalankan dalam mode kluster. Untuk informasi lebih lanjut tentang mode eksekusi, lihat Mode eksekusi.

Batasan

Jika muncul error saat Anda melakukan commit node ODPS Spark yang menggunakan versi Spark 3.X, belilah kelompok sumber daya serverless. Untuk informasi selengkapnya, lihat Buat dan gunakan kelompok sumber daya serverless.

Persiapan

Anda dapat menggunakan node MaxCompute Spark untuk menjalankan tugas offline Spark on MaxCompute dalam Java/Scala atau Python. Langkah pengembangan dan proses konfigurasi berbeda untuk setiap bahasa. Pilih bahasa berdasarkan kebutuhan bisnis Anda.

Java/Scala

Sebelum menjalankan kode Java atau Scala di node ODPS Spark, Anda harus menyelesaikan pengembangan kode untuk tugas Spark on MaxCompute di mesin lokal Anda dan mengunggah kodenya ke DataWorks sebagai resource MaxCompute. Lakukan langkah-langkah berikut:

  1. Siapkan lingkungan pengembangan.

    Anda harus menyiapkan lingkungan pengembangan tempat Anda ingin menjalankan tugas Spark on MaxCompute berdasarkan sistem operasi yang digunakan. Untuk informasi selengkapnya, lihat Menyiapkan lingkungan pengembangan Linux atau Menyiapkan lingkungan pengembangan Windows.

  2. Kembangkan kode Java atau Scala.

    Sebelum menjalankan kode Java atau Scala di node ODPS Spark, Anda harus menyelesaikan pengembangan kode untuk tugas Spark on MaxCompute di mesin on-premise atau di lingkungan pengembangan yang telah disiapkan. Kami menyarankan Anda menggunakan templat proyek contoh yang disediakan oleh Spark on MaxCompute.

  3. Paketkan kode yang telah dikembangkan dan unggah ke DataWorks.

    Setelah kode selesai dikembangkan, paketkan dan unggah paket tersebut ke DataWorks sebagai resource MaxCompute. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.

Bahasa pemrograman: Python (Gunakan lingkungan Python default)

DataWorks memungkinkan Anda mengembangkan tugas PySpark dengan menulis kode ke resource Python secara online di DataWorks dan melakukan commit serta menjalankan kodenya menggunakan node ODPS Spark. Untuk informasi tentang cara membuat resource Python di DataWorks dan melihat contoh pengembangan aplikasi Spark on MaxCompute menggunakan PySpark, lihat Buat dan gunakan resource MaxCompute dan Kembangkan aplikasi Spark on MaxCompute menggunakan PySpark.

Catatan

Anda dapat menggunakan lingkungan Python default yang disediakan oleh DataWorks untuk mengembangkan kode. Jika paket pihak ketiga yang didukung oleh lingkungan Python default tidak memenuhi kebutuhan tugas PySpark, rujuk ke Bahasa pemrograman: Python (Gunakan lingkungan Python kustom) untuk menyiapkan lingkungan Python kustom. Anda juga dapat menggunakan node PyODPS 2 atau node PyODPS 3, yang mendukung lebih banyak resource Python untuk pengembangan.

Bahasa pemrograman: Python (Gunakan lingkungan Python kustom)

Jika lingkungan Python default tidak memenuhi kebutuhan bisnis Anda, lakukan langkah-langkah berikut untuk menyiapkan lingkungan Python kustom guna menjalankan tugas Spark on MaxCompute Anda.

  1. Siapkan lingkungan Python di mesin lokal Anda.

    Anda dapat merujuk ke Versi Python PySpark dan dependensi yang didukung untuk mengonfigurasi lingkungan Python sesuai kebutuhan bisnis Anda.

  2. Paketkan kode untuk lingkungan Python dan unggah paket tersebut ke DataWorks.

    Anda harus memaketkan kode untuk lingkungan Python dalam format ZIP dan mengunggah paket tersebut ke DataWorks sebagai resource MaxCompute sehingga Anda dapat menjalankan tugas Spark on MaxCompute dalam lingkungan tersebut. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.

Penjelasan parameter

DataWorks menjalankan tugas offline Spark on MaxCompute dalam mode kluster. Dalam mode ini, Anda harus menentukan titik masuk aplikasi kustom Anda dalam metode main. Tugas Spark berakhir ketika metode main selesai dieksekusi, dengan status Success atau Fail. Selain itu, Anda harus menambahkan konfigurasi dari file spark-defaults.conf satu per satu ke item konfigurasi node MaxCompute Spark. Contohnya mencakup jumlah instans executor, ukuran memori, dan konfigurasi spark.hadoop.odps.runtime.end.point.

Catatan

Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, tambahkan setiap konfigurasi dari file spark-defaults.conf satu per satu sebagai item konfigurasi untuk node MaxCompute Spark.

Parameter

Deskripsi

Perintah spark-submit

Spark Version

Versi Spark. Nilai yang valid: Spark1.x, Spark2.x, dan Spark3.x.

Catatan

Jika muncul error saat Anda melakukan commit node ODPS Spark yang menggunakan versi Spark 3.X, belilah kelompok sumber daya serverless. Untuk informasi selengkapnya, lihat Buat dan gunakan kelompok sumber daya serverless.

Tidak ada

Language

Pilih Java/Scala atau Python berdasarkan bahasa pengembangan tugas Spark on MaxCompute Anda.

Tidak ada

Main JAR Resource

File resource JAR utama atau Python.

Anda harus mengunggah file resource yang diperlukan ke DataWorks dan melakukan commit file tersebut terlebih dahulu. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.

app jar or Python file

Configuration Item

Item konfigurasi yang diperlukan untuk mengirimkan tugas Spark on MaxCompute.

  • Anda tidak perlu mengonfigurasi spark.hadoop.odps.access.id (ID AccessKey), spark.hadoop.odps.access.key (AccessKey Secret), atau spark.hadoop.odps.end.point (endpoint). Platform secara default menyuntikkan nilai dari proyek MaxCompute saat ini. Anda dapat secara eksplisit mengonfigurasinya untuk mengganti nilai default.

  • Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, tambahkan setiap konfigurasi dari file spark-defaults.conf satu per satu sebagai item konfigurasi untuk node MaxCompute Spark, seperti jumlah executor, ukuran memori, dan konfigurasi spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Main Class

Nama kelas utama. Parameter ini wajib diisi ketika Language diatur ke Java/Scala.

--class CLASS_NAME

Parameter

Tambahkan argumen untuk aplikasi Anda sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan dalam format ${variable_name}. Setelah mengonfigurasi variabel di bidang Parameter, Anda harus memberikan nilainya di panel navigasi kanan di bawah Scheduling Settings > Parameter.

Catatan

Untuk informasi tentang format parameter penjadwalan yang didukung, lihat Format parameter penjadwalan yang didukung.

[app arguments]

Other resources

Jenis resource berikut juga didukung. Anda dapat memilih jenis resource berikut berdasarkan kebutuhan bisnis Anda.

  • Resource JAR: Hanya tersedia ketika Language adalah Java/Scala.

  • Resource Python: Hanya tersedia ketika Language adalah Python.

  • Sumber daya file

  • Resource arsip: Hanya menampilkan resource terkompresi dalam format ZIP.

Anda harus mengunggah file resource yang diperlukan ke DataWorks dan melakukan commit file tersebut terlebih dahulu. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.

Perintah untuk berbagai jenis resource:

  • --jars JARS

  • --py-files PY_FILES

  • --files FILES

  • --archives ARCHIVES

Contoh pengeditan kode sederhana

Bagian ini memberikan contoh sederhana tentang cara menggunakan node ODPS Spark untuk mengembangkan tugas Spark on MaxCompute. Dalam contoh ini, tugas Spark on MaxCompute dikembangkan untuk menentukan apakah sebuah string dapat dikonversi menjadi angka.

  1. Buat resource.

    1. Di halaman DataStudio, buat resource Python baru dan beri nama spark_is_number.py. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute. Gunakan kode berikut:

      # -*- 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. Simpan dan commit resource tersebut.

  2. Pada node ODPS Spark yang telah dibuat, konfigurasikan parameter dan properti penjadwalan untuk tugas MaxCompute Spark dengan merujuk pada bagian Penjelasan parameter dalam topik ini, lalu simpan dan commit node tersebut.

    Parameter

    Deskripsi

    Spark Version

    Pilih Spark2.x.

    Language

    Pilih Python.

    Main Python Resource

    Resource Python spark_is_number.py yang telah Anda buat.

  3. Buka Operation Center di lingkungan pengembangan untuk melakukan pengisian ulang data pada node ODPS Spark. Untuk informasi selengkapnya, lihat Pengisian ulang data dan tampilkan instans pengisian ulang data (versi baru).

    Catatan

    DataWorks tidak menyediakan titik masuk untuk menjalankan node ODPS Spark di DataStudio. Anda harus menjalankan node ODPS Spark di Operation Center di lingkungan pengembangan.

  4. Lihat hasilnya.

    Setelah instans pengisian ulang data berhasil dijalankan, klik tracking URL di log eksekusi yang dihasilkan untuk melihat hasilnya. Informasi berikut dikembalikan:

    False
    True
    True
    True
    True

Contoh pengeditan kode tingkat lanjut

Untuk informasi lebih lanjut tentang pengembangan tugas Spark on MaxCompute dalam skenario lainnya, lihat topik-topik berikut:

Langkah selanjutnya

Setelah menyelesaikan pengembangan tugas Spark on MaxCompute, Anda dapat melakukan operasi berikut:

  • Konfigurasi penjadwalan: Konfigurasikan properti penjadwalan periodik seperti pengaturan pengulangan eksekusi dan dependensi untuk tugas yang dijalankan secara berkala. Ikhtisar konfigurasi penjadwalan tugas.

  • Debugging tugas: Uji dan jalankan kode node untuk memverifikasi logikanya. Proses debugging tugas.

  • Penerapan tugas: Terapkan node untuk menjalankannya secara berkala berdasarkan konfigurasi penjadwalannya. Terapkan tugas.