全部产品
Search
文档中心

MaxCompute:Sumber Daya

更新时间:Jun 19, 2025

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 metode drop() 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 File
    Anda dapat membuka sumber daya menggunakan salah satu metode berikut:
    • Panggil metode open untuk 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 metode open() 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 mode r+, tetapi isi file dihapus terlebih dahulu.
    • a+: Mirip dengan mode r+, 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.

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)