Pekerjaan MaxCompute PyFG menghasilkan fitur kompleks dalam batch offline dan mendukung tipe data ODPS 2.0 yang kompleks, seperti list, map, float, dan integer. Pekerjaan ini menggunakan file konfigurasi dan parameter command-line untuk menentukan apakah akan melakukan binning terhadap fitur yang dihasilkan.
Metode 1: Gunakan image kelompok sumber daya serbaguna
Di Konsol DataWorks, buka bagian Scheduling Configuration – Resource Properties. Pilih kelompok sumber daya serbaguna dan gunakan image dataworks_pairec_task_pod versi terbaru.
dataworks_pairec_task_pod mungkin tertinggal dari pembaruan pyfg, sehingga paket pyfg dalam image tersebut mungkin bukan versi terbaru. Untuk memverifikasi versinya, lihat skrip yang dihasilkan oleh Configure features. Atau, gunakan Metode 3 untuk menyesuaikan image kelompok sumber daya dan menggunakan versi terbaru pyfg.Metode 2: Instal paket dependensi (untuk versi lama DataWorks)
Login ke Konsol DataWorks, buat grup sumber daya eksklusif untuk penjadwalan, lalu gunakan O&M Assistant untuk menginstal paket pyfg.
Untuk menginstal paket pyfg di grup sumber daya eksklusif untuk penjadwalan, buka DataWorks > Management Center > Resource Group List > <a href="https://dataworks.console.aliyun.com/resource/runcommand" id="963b1e2ebd2ts">O&M Assistant</a> dan jalankan perintah berikut:
/home/tops/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade --force-reinstall http://tzrec.oss-cn-beijing.aliyuncs.com/third_party/pyfg102-1.0.2-cp37-cp37m-linux_x86_64.whlMetode 3: Sesuaikan image kelompok sumber daya (untuk versi baru DataWorks)
Untuk informasi selengkapnya, lihat Custom images.
Unggah file sumber daya
Unggah file konfigurasi FG dalam format JSON ke proyek MaxCompute Anda.
Beberapa operator FG memerlukan file sumber daya tambahan, yang harus diunggah secara manual ke proyek MaxCompute Anda.
Feature operator | Description | Resource file parameter |
Normalisasi teks | File stop word | |
Fitur tokenisasi teks | File konfigurasi kosakata | |
Fitur relevansi teks | File konfigurasi frekuensi term | |
Operator kustom | File konfigurasi operator |
Buat tabel output
Di DataWorks, buat node PyOdps3 dan jalankan skrip berikut untuk membuat tabel output serta sumber daya lain yang diperlukan berdasarkan isi file fg.json.
from pyfg102 import run_on_odps
fg_task = run_on_odps.FgTask(
args['input_table'],
args['output_table'],
args['fg_json_file'],
args['partition_value'],
force_delete_output_table=True,
force_update_resource=True)
fg_task.create_output_table(o)Sebelum menjalankan skrip, konfigurasikan parameter berikut di Scheduling Configuration: input_table, output_table, fg_json_file, dan partition_value.
Meskipun metode fg_task.run(o) secara otomatis membuat tabel output jika belum ada, kami menyarankan untuk membuat tabel tersebut terlebih dahulu. Praktik ini membantu mencegah konflik konkurensi yang dapat menyebabkan kegagalan tugas selama pengisian ulang data.
Jalankan tugas offline FG
Di DataWorks, buat node PyOdps3 dan jalankan skrip berikut. Jika tabel output belum ada, skrip ini secara otomatis membuatnya berdasarkan file fg.json.
from pyfg102 import run_on_odps
fg_task = run_on_odps.FgTask(
args['input_table'],
args['output_table'],
args['fg_json_file'],
args['partition_value'],
batch_size=128,
force_delete_output_table=False,
force_update_resource=False)
fg_task.add_sql_setting('odps.stage.mapper.split.size', 256)
fg_task.run(o)
Sebelum menjalankan skrip, konfigurasikan parameter berikut di Scheduling Configuration: input_table, output_table, fg_json_file, dan partition_value.
Anda juga dapat menginstal pyfg dan mengirimkan tugas dari mesin lokal jika telah menginstal PyODPS.
Parameter
Parameter | Default | Description |
input_table | None | Tabel input. |
output_table | None | Tabel output. Tugas ini secara otomatis membuat tabel ini jika belum ada. |
fg_json_file | None | File konfigurasi FG dalam format JSON. |
partition_value | None | Partisi tabel input yang akan diproses. Hasil ditulis ke partisi yang sesuai di tabel output. |
schema | None | Menentukan skema MaxCompute. Untuk informasi lebih lanjut, lihat Schema operations. |
batch_size | 128 | Jumlah catatan yang diproses dalam satu batch. |
memory | 1024 | Memori yang dialokasikan ke node tugas, dalam MB. |
force_delete_output_table | False | Jika |
force_update_resource | False | Jika |
output_merged_str | False | Jika diatur ke |
debug | False | Jika |
sql_setting | None | Menentukan parameter SQL MaxCompute dengan menggunakan metode |
fg_setting | None | Parameter |
Anda dapat menyesuaikan pengaturan ini dengan mengubah nilai parameter pada contoh kode.
Cara kerja
Anda dapat mengirimkan tugas SQL ke MaxCompute dari mesin gerbang di kelompok sumber daya eksklusif tempat paket pyfg diinstal. Atau, Anda dapat menginstal pyfg di mesin lokal yang telah memiliki PyODPS dan mengirimkan tugas dari sana.
Fungsi user-defined (UDF) kustom dalam tugas SQL memerlukan beberapa sumber daya, seperti library bersama FG, file konfigurasi (misalnya, fg.json), kamus, library operator kustom, dan file kode UDF (.py). Semua sumber daya ini harus diunggah ke kluster MaxCompute, tempat mereka disimpan dalam sistem file terdistribusi MaxCompute. Saat tugas dijalankan, setiap worker mengunduh sumber daya tersebut dari sistem file terdistribusi dan memuatnya ke memori.
Beberapa sumber daya digunakan bersama oleh beberapa tugas, seperti library bersama untuk FG dan file kode UDF. Ketika force_update_resource=True, sumber daya asli dihapus sebelum sumber daya baru diunggah, sehingga menciptakan interval waktu di mana tugas lain yang sedang berjalan dapat terpengaruh.