全部产品
Search
文档中心

MaxCompute:Referensi paket dan gambar pihak ketiga

更新时间:Nov 10, 2025

Saat mengembangkan kode Python dengan MaxFrame, Anda sering kali perlu merujuk paket atau citra pihak ketiga. MaxFrame menyediakan antarmuka yang memungkinkan Anda langsung menggunakan paket dan citra yang telah diunggah untuk akses cepat.

Referensi paket pihak ketiga dalam pengembangan MaxFrame

  1. Unggah paket pihak ketiga.

    Catatan

    Untuk informasi selengkapnya tentang cara membuat paket pihak ketiga, lihat Buat paket pihak ketiga untuk PyODPS.

    Sebelum menggunakan paket pihak ketiga, pastikan paket tersebut telah diunggah ke MaxCompute sebagai sumber daya Archive. Topik ini menggunakan paket pihak ketiga packages.tar.gz sebagai contoh. Anda dapat mengunggah paket tersebut dengan salah satu metode berikut:

    • Unggah paket menggunakan kode. Contoh kodenya sebagai berikut.

      import os
      from odps import ODPS
      
      # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID diatur ke ID AccessKey Anda.
      # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur ke Rahasia AccessKey Anda.
      # Jangan gunakan string ID AccessKey atau Rahasia AccessKey secara langsung.
      o = ODPS(
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
          project='<YOUR-DEFAULT-PROJECT>',
          endpoint='<YOUR-END-POINT>',
      )
      # Ganti packages.tar.gz dengan path dan nama file paket target.
      o.create_resource("packages.tar.gz", "archive", fileobj=open("packages.tar.gz", "rb"))
      
    • Unggah sumber daya menggunakan DataWorks. Untuk informasi selengkapnya, lihat Buat dan gunakan sumber daya MaxCompute.

  2. Referensikan paket pihak ketiga dalam pengembangan MaxFrame. Untuk informasi selengkapnya, lihat Layanan pengemasan otomatis.

    MaxFrame memungkinkan Anda mereferensikan paket dan file pihak ketiga selama pengembangan pekerjaan melalui deklarasi. Untuk melakukannya, impor modul with_resource_libraries, seperti pada contoh berikut.

    from maxframe.udf import with_resource_libraries
    
    @with_resource_libraries("packages.tar.gz", "demo.py")

Contoh

Contoh berikut menunjukkan cara mereferensikan paket pihak ketiga dalam pekerjaan MaxFrame. Contoh ini menggunakan paket packages.tar.gz untuk menghitung nilai Population Stability Index (PSI) pada kolom dalam tabel uji test_float_col.

  1. Persiapkan tabel uji test_float_col dan data uji.

    CREATE TABLE test_float_col (col1 double);
    INSERT INTO test_float_col VALUES (3.75),(2.51);
  2. Tulis kode MaxFrame dan simpan sebagai file demo.py di mesin lokal Anda. Contoh kodenya sebagai berikut:

    # Hitung nilai PSI kolom col1 dalam tabel uji test_float_col.
    import os
    from odps import ODPS, options
    from maxframe.session import new_session
    import maxframe.dataframe as md
    from maxframe.config import options
    from maxframe import config
    from maxframe.udf import with_resource_libraries
    
    # Referensikan paket pihak ketiga.
    @with_resource_libraries("packages.tar.gz")
    
    def my_psi(v):
        from scipy.special import psi
        return float(psi(v))
    
    o = ODPS(
          # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID diatur ke ID AccessKey Anda.
          # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur ke Rahasia AccessKey Anda.
          # Jangan gunakan string ID AccessKey atau Rahasia AccessKey secara langsung.
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
          project='your-default-project',
          endpoint='your-end-point'
    )
    # Buat sesi MaxFrame.
    session = new_session(o)
    df = md.read_odps_table('test_float_col')
    # Eksekusi kode dan peroleh hasilnya.
    print(df.col1.map(my_psi).execute().fetch())
    
  3. Jalankan file demo.py pada klien MaxFrame lokal. Contoh perintahnya sebagai berikut:

    python demo.py

    Hasil berikut dikembalikan.

    0    1.182537
    1    0.708048
    Name: col1, dtype: float64

Referensi citra dalam pengembangan MaxFrame

Contoh berikut menunjukkan cara menggunakan citra dalam pekerjaan MaxFrame. Contoh ini menggunakan citra scipy bawaan untuk menghitung nilai PSI pada kolom dalam tabel uji test_float_col.

  1. Persiapkan tabel uji test_float_col dan data uji.

    CREATE TABLE test_float_col (col1 double);
    INSERT INTO test_float_col VALUES (3.75),(2.51);
  2. Tulis kode MaxFrame dan simpan sebagai file demo.py di mesin lokal Anda. Contoh kodenya sebagai berikut.

    # Kode untuk menghitung nilai PSI kolom col1 dalam tabel uji test_float_col.
    import os
    from odps import ODPS, options
    from maxframe.session import new_session
    import maxframe.dataframe as md
    from maxframe.config import options
    from maxframe import config
    
    # Referensikan citra scipy bawaan.
    config.options.sql.settings = {
        "odps.session.image": "scipy"
    }
    def my_psi(v):
        from scipy.special import psi
        return float(psi(v))
    
    o = ODPS(
          # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID diatur ke ID AccessKey Anda.
          # Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur ke Rahasia AccessKey Anda.
          # Jangan gunakan string ID AccessKey atau Rahasia AccessKey secara langsung.
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
          os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
          project='your-default-project',
          endpoint='your-end-point'
    )
    # Buat sesi MaxFrame.
    session = new_session(o)
    df = md.read_odps_table('test_float_col')
    # Eksekusi kode dan peroleh hasilnya.
    print(df.col1.map(my_psi).execute().fetch())
  3. Jalankan file demo.py pada klien MaxFrame lokal. Contoh perintahnya sebagai berikut:

    python demo.py

    Hasil berikut dikembalikan.

    0    1.182537
    1    0.708048
    Name: col1, dtype: float64