全部产品
Search
文档中心

MaxCompute:Contoh: Merujuk pada sumber daya file

更新时间:Jul 02, 2025

Topik ini menjelaskan cara merujuk pada sumber daya file menggunakan fungsi terdefinisi pengguna Python (UDF) di klien MaxCompute.

Prasyarat

Pastikan persyaratan berikut telah dipenuhi:

  • Klien MaxCompute telah diinstal dan dikonfigurasi.

    Untuk informasi lebih lanjut tentang cara menginstal dan mengonfigurasi klien MaxCompute, lihat Instal dan Konfigurasikan Klien MaxCompute.

  • File yang ingin dirujuk telah ditambahkan ke Proyek MaxCompute Anda sebagai sumber daya.

    Dalam contoh ini, file test_distcache.txt telah ditambahkan ke Proyek MaxCompute sebagai sumber daya. File tersebut berisi data berikut:

    1 a
    2 b
    3 c
    4 d

    Untuk informasi lebih lanjut tentang cara menambahkan sumber daya, lihat Tambahkan Sumber Daya.

Prosedur pengembangan dan Penggunaan

1. Tulis UDF

Berikut adalah kode contoh yang menunjukkan cara menggunakan Python UDF untuk mendapatkan data yang memenuhi persyaratan tertentu dari file test_distcache.txt.

from odps.udf import annotate
from odps.distcache import get_cache_file
@annotate('bigint->string')
class DistCacheExample(object):
    def __init__(self):
        cache_file = get_cache_file('test_distcache.txt')
        kv = {}
        for line in cache_file:
            line = line.strip()
            if not line:
                continue
            k, v = line.split()
            kv[int(k)] = v
        cache_file.close()
        self.kv = kv
    def evaluate(self, arg):
        return self.kv.get(arg)

Simpan kode contoh di atas sebagai skrip Python dan simpan skrip Python tersebut di direktori bin klien MaxCompute. Dalam contoh ini, skrip Python diberi nama file.py.

2. Unggah sumber daya dan buat UDF

Setelah Anda mengembangkan dan men-debug kode UDF, unggah sumber daya ke MaxCompute di klien MaxCompute dan buat UDF.

  1. Jalankan perintah berikut untuk menambahkan file skrip Python sebagai sumber daya ke MaxCompute:

    add py file.py;

    Hasil berikut akan dikembalikan:

    OK: Resource 'file.py' have been created.

    Untuk informasi lebih lanjut tentang perintah yang dapat digunakan untuk menambahkan sumber daya ke MaxCompute, lihat Tambahkan Sumber Daya.

  2. Jalankan perintah berikut untuk membuat Python UDF:

    create function file_udf as 'file.DistCacheExample' using 'file.py, test_distcache.txt';

    Deskripsi parameter:

    • file_udf: Nama Python UDF yang ingin dibuat. Fungsi ini kemudian dipanggil dalam Pernyataan SQL.

    • file.DistCacheExample: file adalah nama skrip file.py. DistCacheExample adalah kelas yang didefinisikan dalam skrip file.py.

    Hasil berikut akan dikembalikan:

    Success: Function 'file_udf' have been created.

    Untuk informasi lebih lanjut tentang cara membuat UDF, lihat Buat UDF.

3. Gunakan UDF

Setelah UDF dibuat, jalankan perintah berikut untuk membuat data uji dan memanggil UDF:

-- Buat tabel uji. 
create table file_table (arg bigint);
-- Masukkan data ke dalam tabel. 
insert into file_table values (1), (4), (15), (123), (7995);
-- Panggil fungsi yang telah dibuat dalam Pernyataan SQL untuk mendapatkan data yang memenuhi persyaratan tertentu dari sumber daya file. 
select file_udf(arg) from file_table;

Hasil berikut akan dikembalikan:

+-----+
| _c0 |
+-----+
| a   |
| d   |
| NULL |
| NULL |
| NULL |
+-----+