Anda dapat menjalankan PyODPS sebagai node di platform pengembangan data seperti DataWorks. Platform tersebut mengelola waktu proses dan penjadwalan PyODPS, sehingga Anda tidak perlu membuat objek entri MaxCompute secara manual. API PyODPS DataFrame memungkinkan pemrosesan data bergaya pandas. Topik ini menggunakan DataWorks untuk menunjukkan cara memulai penggunaan PyODPS dalam proyek Anda.
Prasyarat
Anda telah mengaktifkan MaxCompute.
Anda telah membuat proyek MaxCompute.
Anda telah membuat ruang kerja DataWorks dan mengikat sumber daya komputasi ke ruang kerja tersebut.
Prosedur
Create a PyODPS node.
Topik ini menggunakan node PyODPS DataWorks. Untuk detailnya, lihat Develop a PyODPS 3 task.
Topik ini menggunakan node PyODPS 3 sebagai contoh. Versi Python yang mendasari node PyODPS 3 adalah 3.7.
Node PyODPS dapat memproses maksimal 50 MB data lokal dan menggunakan hingga 1 GB memori selama waktu proses. Jika suatu task melebihi batas ini, sistem akan menghentikannya. Oleh karena itu, hindari menulis kode Python yang memproses data dalam jumlah besar di dalam task PyODPS.
Menulis dan men-debug kode di DataWorks kurang efisien. Untuk meningkatkan efisiensi, kami menyarankan Anda mengembangkan kode secara lokal di IntelliJ IDEA.
Create a workflow.
Buka halaman Data Studio, klik kanan Business Flow, lalu pilih Create Workflow.
Create a PyODPS node.
Klik kanan alur kerja baru, pilih , masukkan nama untuk node tersebut, lalu klik Submit.
Edit the PyODPS node.
Write the code.
Masukkan kode uji coba di editor node PyODPS. Contoh berikut menunjukkan penggunaan API PyODPS untuk operasi tabel. Untuk informasi lebih lanjut tentang operasi tabel dan operasi SQL, lihat Tables dan SQL.
from odps import ODPS # Di node PyODPS DataWorks, variabel global (`o` atau `odps`) tersedia secara default sebagai entri MaxCompute. Anda dapat menggunakannya langsung tanpa perlu mendefinisikannya secara manual. table = o.create_table('my_new_table', 'num bigint, id string', if_not_exists=True) # Masukkan data ke tabel non-partisi my_new_table. records = [[111, 'aaa'], [222, 'bbb'], [333, 'ccc'], [444, '中文']] o.write_table(table, records) # Baca data dari tabel non-partisi my_new_table. for record in o.read_table(table): print(record[0],record[1]) # Baca data dari tabel dengan mengeksekusi pernyataan SQL. result = o.execute_sql('select * from my_new_table;',hints={'odps.sql.allow.fullscan': 'true'}) # Baca hasil eksekusi SQL. with result.open_reader() as reader: for record in reader: print(record[0],record[1]) # Hapus tabel untuk melepaskan sumber daya. table.drop()Run the code.
Setelah mengedit kode, klik ikon
. Setelah eksekusi selesai, Anda dapat melihat hasilnya di tab Runtime Log. Output log berikut menunjukkan keberhasilan.2023-07-21 15:06:41 INFO ======================================================== Executing user script with PyODPS 0.11.2.3 Tunnel session created: <TableUploadSession xxx > Tunnel session created: <TableDownloadSession xxx > 111 aaa 222 bbb 333 ccc 444 中文 Tunnel session created: <InstanceDownloadSession id=xxx project_name=xxx > 111 aaa 222 bbb 333 ccc 444 中文 2023-07-21 15:06:49 INFO ======================================================== 2023-07-21 15:06:49 INFO Exit code of the Shell command 0 2023-07-21 15:06:49 INFO --- Invocation of Shell command completed --- 2023-07-21 15:06:49 INFO Shell run successfully! 2023-07-21 15:06:49 INFO Current task status: FINISH 2023-07-21 15:06:49 INFO Cost time is: 7.507s /home/admin/alisatasknode/taskinfo/xxx xxx .log-END-EOF