全部产品
Search
文档中心

MaxCompute:Contoh: Merujuk Sumber Daya Tabel

更新时间:Jul 02, 2025

Topik ini menjelaskan cara merujuk sumber daya tabel menggunakan fungsi yang ditentukan pengguna (UDF) dalam Python pada klien MaxCompute.

Prasyarat

Pastikan persyaratan berikut terpenuhi:

  • Klien MaxCompute telah diinstal dan dikonfigurasi.

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

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

    Dalam contoh berikut, tabel udf_test ditambahkan ke proyek MaxCompute sebagai sumber daya. Tabel tersebut berisi data berikut:

    +------------+------+
    | col1       | col2 |
    +------------+------+
    | 1          | a    |
    | 2          | b    |
    | 4          | c    |
    | 5          | d    |
    +------------+------+

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

Prosedur Pengembangan dan Penggunaan

1. Tulis UDF

Kode sampel berikut menunjukkan cara menggunakan Python UDF untuk melintasi data dalam tabel udf_test untuk mendapatkan array.

from odps.udf import annotate
from odps.distcache import get_cache_table
@annotate('->string')
class DistCacheTableExample(object):
    def __init__(self):
        self.records = list(get_cache_table('udf_test'))
        self.counter = 0
        self.ln = len(self.records)
    def evaluate(self):
        if self.counter > self.ln - 1:
            return None
        ret = self.records[self.counter]
        self.counter += 1
        return str(ret)

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

2. Unggah sumber daya dan buat UDF

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

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

    add py table.py;

    Hasil berikut dikembalikan:

    OK: Resource 'table.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 table_udf as 'table.DistCacheTableExample' using 'table.py,udf_test';

    Deskripsi parameter:

    • table_udf: nama Python UDF yang ingin dibuat. Fungsi ini kemudian dipanggil dalam Pernyataan SQL.

    • table.DistCacheTableExample: table adalah nama skrip table.py. DistCacheTableExample adalah kelas yang didefinisikan dalam skrip table.py.

    Hasil berikut dikembalikan:

    Success: Function 'table_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 membangun data uji dan memanggil UDF:

-- Buat tabel uji. 
create table table_test (arg bigint);
-- Masukkan data ke dalam tabel. 
insert into table_test values (1), (4), (15), (123), (7995);
-- Panggil fungsi yang telah dibuat dalam Pernyataan SQL. 
select table_udf() from table_test;

Hasil berikut dikembalikan:

+-----+
| _c0 |
+-----+
| (4, 'c') |
| (5, 'd') |
| (1, 'a') |
| (2, 'b') |
| NULL |
+-----+

Referensi

Untuk informasi lebih lanjut tentang contoh cara membaca sumber daya tabel MaxCompute menggunakan fungsi tabel bernilai pengguna Java (UDTF), lihat Gunakan Java UDTF untuk membaca sumber daya dari MaxCompute.