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
Unggah paket pihak ketiga.
CatatanUntuk 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.
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.
Persiapkan tabel uji
test_float_coldan data uji.CREATE TABLE test_float_col (col1 double); INSERT INTO test_float_col VALUES (3.75),(2.51);Tulis kode MaxFrame dan simpan sebagai file
demo.pydi 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())Jalankan file demo.py pada klien MaxFrame lokal. Contoh perintahnya sebagai berikut:
python demo.pyHasil 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.
Persiapkan tabel uji
test_float_coldan data uji.CREATE TABLE test_float_col (col1 double); INSERT INTO test_float_col VALUES (3.75),(2.51);Tulis kode MaxFrame dan simpan sebagai file
demo.pydi 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())Jalankan file
demo.pypada klien MaxFrame lokal. Contoh perintahnya sebagai berikut:python demo.pyHasil berikut dikembalikan.
0 1.182537 1 0.708048 Name: col1, dtype: float64