All Products
Search
Document Center

Lindorm:Pengembangan Pekerjaan Python: Panduan Praktis

Last Updated:Feb 11, 2026

Mesin komputasi Lindorm menyediakan API RESTful untuk mengirimkan pekerjaan Spark Python. Anda dapat menggunakan API ini untuk menjalankan tugas streaming dan batch, tugas pembelajaran mesin, serta tugas komputasi graf. Topik ini menjelaskan cara mengembangkan dan mengirimkan pekerjaan Python untuk Mesin komputasi Lindorm.

Prasyarat

Anda telah mengaktifkan Mesin komputasi Lindorm. Untuk informasi selengkapnya, lihat Aktifkan layanan.

Proses Pengembangan Pekerjaan Spark Python

  1. Definisikan pekerjaan Spark berbasis Python

  2. Paketkan pekerjaan Spark berbasis Python

  3. Unggah file pekerjaan Spark berbasis Python

  4. Kirimkan pekerjaan Spark berbasis Python

Langkah 1: Definisikan pekerjaan Spark berbasis Python

  1. Klik Contoh pekerjaan Spark untuk mengunduh paket contoh.

  2. Ekstrak paket yang telah diunduh. Folder hasil ekstraksi bernama lindorm-spark-examples. Buka direktori lindorm-spark-examples/python dan tinjau struktur direktori Python.

  3. Bagian ini menjelaskan struktur direktori proyek, dengan asumsi bahwa your_project adalah direktori root proyek.

    1. Buat file kosong bernama __init__.py di direktori your_project.

    2. Modifikasi file entri.

      1. Tambahkan path direktori your_project ke sys.path. Untuk detailnya, lihat bagian Notice1 dalam lindorm-spark-examples/python/your_project/main.py.

        # Notice1: Anda perlu melakukan langkah berikut untuk menyelesaikan modifikasi kode:
        # Step1: Tambahkan "__init__.py" ke direktori proyek Anda, sehingga proyek Anda akan bertindak sebagai modul dari launcher.py
        # Step2: Tambahkan direktori saat ini ke sys.path, Anda harus menambahkan kode berikut ke file utama Anda
        current_dir = os.path.abspath(os.path.dirname(__file__))
        sys.path.append(current_dir)
        print("current dir in your_project: %s" % current_dir)
        print("sys.path: %s \n" % str(sys.path))
      2. Bungkus logika entri ke dalam metode main(argv). Untuk detailnya, lihat bagian Notice2 dalam lindorm-spark-examples/python/your_project/main.py.

        # Notice2: Pindahkan kode di cabang `if __name__ == "__main__":` ke fungsi main(argv) yang baru didefinisikan,
        # sehingga launcher.py di direktori induk hanya perlu memanggil main(sys.argv)
        def main(argv):
            print("Receive arguments: %s \n" % str(argv))
        
            print("current dir in main: %s \n" % os.path.abspath(os.path.dirname(__file__)))
            # Tulis kode Anda di sini
        
        
        if __name__ == "__main__":
            main(sys.argv)
    3. Buat file entri untuk memanggil metode main(argv). Di direktori root your_project, buat file bernama launcher.py. Anda dapat menyalin kode dari lindorm-spark-examples/python/launcher.py.

Langkah 2: Paketkan pekerjaan Spark berbasis Python

  1. Paketkan lingkungan runtime Python dan pustaka pihak ketiga yang digunakan oleh proyek Anda. Kami menyarankan menggunakan Conda atau Virtualenv untuk mengemas dependensi tersebut ke dalam file tar. Untuk informasi selengkapnya, lihat Manajemen Paket Python.

    Penting
    • Gunakan parameter spark.archives untuk meneruskan file tar yang dibuat oleh Conda atau Virtualenv. Semua format yang didukung oleh spark.archives valid. Untuk informasi selengkapnya, lihat spark.archives.

    • Lakukan langkah ini di Linux untuk memastikan Mesin komputasi Lindorm dapat mengenali file biner Python.

  2. Paketkan file proyek. Kompres direktori your_project menjadi file .zip atau .egg.

    • Jalankan perintah berikut untuk membuat file .zip:

      zip -r project.zip your_project
    • Untuk membuat file .egg, lihat Membangun Eggs.

Langkah 3: Unggah file pekerjaan Spark berbasis Python

Unggah file-file berikut ke OSS. Untuk informasi selengkapnya, lihat Unggahan sederhana.

  • File tar yang berisi lingkungan runtime Python dan pustaka pihak ketiga, yang dibuat pada Langkah 2.

  • File proyek (.zip atau .egg) yang dibuat pada Langkah 2.

  • File launcher.py yang dibuat pada Langkah 1.

Langkah 4: Kirimkan pekerjaan Spark berbasis Python

Mesin komputasi Lindorm mendukung dua cara untuk mengirimkan dan mengelola pekerjaan:

Parameter permintaan terdiri dari dua bagian berikut:

  • Parameter untuk lingkungan runtime pekerjaan Python. Contoh:

    {"spark.archives":"oss://testBucketName/pyspark_conda_env.tar.gz#environment", "spark.kubernetes.driverEnv.PYSPARK_PYTHON":"./environment/bin/python","spark.submit.pyFiles":"oss://testBucketName/your_project.zip"}
    • Saat mengirimkan file proyek (.zip, .egg, atau .py), atur spark.submit.pyFiles dalam parameter configs.

    • Saat mengirimkan file tar yang berisi lingkungan runtime Python dan pustaka pihak ketiga, atur spark.archives dan spark.kubernetes.driverEnv.PYSPARK_PYTHON dalam parameter configs.

      • Gunakan tanda pagar (#) untuk menentukan targetDir dalam parameter spark.archives.

      • Atur spark.kubernetes.driverEnv.PYSPARK_PYTHON ke path executable Python.

  • Jika Anda mengunggah file ke OSS, konfigurasikan parameter berikut dalam parameter configs.

    Tabel 1. Parameter configs

    Parameter

    Contoh

    Deskripsi

    spark.hadoop.fs.oss.endpoint

    oss-cn-beijing-internal.aliyuncs.com

    Titik akhir Bucket OSS tempat Anda menyimpan file Python.

    spark.hadoop.fs.oss.accessKeyId

    testAccessKey ID

    ID AccessKey dan Rahasia AccessKey yang Anda buat di Konsol Manajemen Alibaba Cloud. Untuk informasi selengkapnya, lihat Buat Pasangan Kunci Akses.

    spark.hadoop.fs.oss.accessKeySecret

    testAccessKey Secret

    spark.hadoop.fs.oss.impl

    org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem

    Kelas yang digunakan untuk mengakses OSS.

    Catatan

    Untuk parameter tambahan, lihat Parameter.

Contoh Pengembangan Pekerjaan Python

  1. Klik Contoh pekerjaan Spark untuk mengunduh dan mengekstrak file.

  2. Buka file your_project/main.py dan modifikasi titik entri.

    1. Tambahkan direktori your_project ke sys.path.

      current_dir = os.path.abspath(os.path.dirname(__file__))
      sys.path.append(current_dir)
      print("current dir in your_project: %s" % current_dir)
      print("sys.path: %s \n" % str(sys.path))
    2. Tambahkan logika entri ke file main.py. Contoh berikut menginisialisasi SparkSession.

      from pyspark.sql import SparkSession
      spark = SparkSession \
          .builder \
          .appName("PythonImportTest") \
          .getOrCreate()
      print(spark.conf)
      spark.stop()
  3. Di direktori Python, kompres direktori your_project menjadi file ZIP.

    zip -r your_project.zip your_project
  4. Di Linux, gunakan Conda untuk mengemas lingkungan runtime Python.

    conda create -y -n pyspark_conda_env -c conda-forge numpy conda-pack
    conda activate pyspark_conda_env
    conda pack -f -o pyspark_conda_env.tar.gz
  5. Unggah your_project.zip, pyspark_conda_env.tar.gz, dan launcher.py ke OSS.

  6. Kirimkan pekerjaan menggunakan salah satu metode berikut:

Diagnostik pekerjaan

Setelah Anda mengirimkan pekerjaan Python, lihat status dan alamat UI Spark-nya di halaman Jobs. Untuk informasi selengkapnya, lihat Lihat pekerjaan. Jika Anda mengalami masalah selama pengiriman, kirimkan tiket. Berikan ID pekerjaan dan alamat UI Spark kepada staf dukungan.