PyODPS mendukung dua jenis sumber daya: file dan tabel. Topik ini menjelaskan operasi umum yang dapat dilakukan pada sumber daya di PyODPS.
Operasi dasar
list_resources(): Menampilkan semua sumber daya dalam sebuah Proyek.exist_resource(): Memeriksa keberadaan suatu sumber daya.delete_resource(): Menghapus suatu sumber daya. Anda juga dapat menggunakan metodedrop()untuk menghapusnya.create_resource(): Membuat suatu sumber daya.open_resource(): Membaca suatu sumber daya.
Mengelola sumber daya file
Selain file umum, sumber daya file mencakup file .py, file .jar, dan file arsip.
- Membuat Sumber Daya File
Untuk membuat sumber daya file, gunakan metode
create_resource()dengan menentukan nama sumber daya, tipe file, serta objek seperti file atau string.# Gunakan objek seperti file untuk membuat sumber daya file. File seperti paket terkompresi harus dibaca dalam mode biner. resource = o.create_resource('test_file_resource', 'file', file_obj=open('/to/path/file', 'rb')) # Gunakan string untuk membuat sumber daya file. resource = o.create_resource('test_py_resource', 'py', file_obj='import this') - Membaca dan Memodifikasi Sumber Daya FileAnda dapat membuka sumber daya menggunakan salah satu metode berikut:
- Panggil metode
openuntuk sumber daya file. - Panggil metode
open_resource()dari objek entri MaxCompute.
Objek yang dibuka adalah objek seperti file. Mode buka untuk sumber daya file serupa dengan metodeopen()bawaan Python. Contoh berikut menunjukkan mode buka untuk sumber daya file:with resource.open('r') as fp: # Buka sumber daya dalam mode baca. content = fp.read() # Baca semua konten. fp.seek(0) # Kembali ke awal sumber daya. lines = fp.readlines() # Baca beberapa baris. fp.write('Hello World') # Error. Data tidak dapat ditulis dalam mode baca. with o.open_resource('test_file_resource', mode='r+') as fp: # Buka file dalam mode baca/tulis. fp.read() fp.tell() # Tentukan posisi saat ini. fp.seek(10) fp.truncate() # Potong file hingga panjang tertentu. fp.writelines(['Hello\n', 'World\n']) # Tulis beberapa baris ke dalam file. fp.write('Hello World') fp.flush() # Secara manual panggil metode untuk menyerahkan pembaruan ke MaxCompute.PyODPS mendukung mode buka berikut:
r: Mode baca. File dapat dibuka, tetapi tidak dapat ditulis.w: Mode tulis. Data dapat ditulis ke file, tetapi isi file akan dihapus terlebih dahulu.a: Mode tambah. Data dapat ditambahkan ke akhir file.r+: Mode baca/tulis. Anda dapat membaca dan menulis data ke file.w+: Mirip dengan moder+, tetapi isi file dihapus terlebih dahulu.a+: Mirip dengan moder+, tetapi data hanya dapat ditulis di akhir file.
PyODPS juga mendukung mode buka biner berikut untuk beberapa sumber daya file, seperti file terkompresi:rb: Mode baca biner.r+b: Mode baca/tulis biner.
- Panggil metode
Mengelola sumber daya tabel
- Buat Sumber Daya Tabel
o.create_resource('test_table_resource', 'table', table_name='my_table', partition='pt=test') - Perbarui Sumber Daya Tabel
table_resource = o.get_resource('test_table_resource') table_resource.update(partition='pt=test2', project_name='my_project2') - Memperoleh Informasi tentang Tabel dan Partisi
table_resource = o.get_resource('test_table_resource') table = table_resource.table print(table.name) partition = table_resource.partition print(partition.spec) - Membaca dan Menulis Data
table_resource = o.get_resource('test_table_resource') with table_resource.open_writer() as writer: writer.write([0, 'aaaa']) writer.write([1, 'bbbbb']) with table_resource.open_reader() as reader: for rec in reader: print(rec)