PyODPS dapat dipanggil sebagai node pengembangan data di platform pengembangan data seperti DataWorks. Platform tersebut menyediakan lingkungan eksekusi dan kemampuan penjadwalan untuk PyODPS, sehingga Anda tidak perlu membuat objek entri ODPS secara manual. PyODPS mendukung struktur data yang cepat, fleksibel, dan ekspresif seperti Pandas. Anda dapat memproses hasil data menggunakan fungsi Pandas melalui DataFrame API yang disediakan oleh PyODPS. Artikel ini menggunakan platform DataWorks sebagai contoh untuk membantu Anda segera mulai menggunakan PyODPS dalam proyek nyata.
Prasyarat
-
Telah Activate MaxCompute.
-
Telah Create a MaxCompute project.
-
Telah membuat workspace DataWorks, dan Associate a computing resource.
Langkah-langkah Operasional
-
Buat node PyODPS baru.
Artikel ini menggunakan node PyODPS di DataWorks untuk pengembangan. Untuk informasi selengkapnya, lihat Develop a PyODPS 3 job.
-
Contoh berikut menggunakan node PyODPS 3, yang menggunakan Python versi 3.7 di lapisan bawahnya.
-
Jumlah data yang diproses secara lokal oleh node PyODPS tidak boleh melebihi 50 MB, dan penggunaan memori saat eksekusi tidak boleh melebihi 1 GB; jika tidak, tugas node akan dihentikan oleh sistem. Oleh karena itu, hindari menulis kode Python yang memproses volume data besar dalam tugas PyODPS.
-
Menulis dan men-debug kode langsung di DataWorks relatif tidak efisien. Untuk meningkatkan efisiensi pengembangan, disarankan menginstal IDE di lingkungan lokal.
-
Buat Business Flow baru.
Buka halaman Data Development, klik kanan pada Business Flow, lalu pilih Create Workflow.
-
Buat node PyODPS baru.
Klik kanan pada Business Flow yang baru dibuat, pilih , masukkan nama node, lalu klik Submit.
-
-
Edit node PyODPS.
-
Tulis kode program.
Masukkan kode uji coba ke dalam kotak edit node PyODPS. Berikut ini adalah contoh lengkap penggunaan antarmuka PyODPS untuk operasi tabel. Untuk informasi lebih lanjut tentang metode operasi tabel dan SQL, lihat Tabel dan SQL.
from odps import ODPS # Buat tabel non-partisi my_new_table dengan menentukan langsung nama dan tipe field. # Node PyODPS di DataWorks secara default menyertakan variabel global odps atau o sebagai entri ODPS. # Anda tidak perlu mendefinisikan entri ODPS secara manual—langsung gunakan saja. # Untuk informasi lebih lanjut, lihat dokumentasi penggunaan PyODPS melalui DataWorks. table = o.create_table('my_new_table', 'num bigint, id string', if_not_exists=True) # Masukkan data ke dalam 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 menjalankan 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 membersihkan resource. table.drop() -
Jalankan kode.
Setelah selesai mengedit, klik ikon
. Setelah eksekusi selesai, Anda dapat melihat hasilnya di Runtime Log di bagian bawah. Log keluaran berikut menandakan eksekusi berhasil.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
-