全部产品
Search
文档中心

MaxCompute:BUAT FUNGSI

更新时间:Nov 03, 2025

Membuat fungsi yang ditentukan pengguna (UDF) dalam sebuah proyek MaxCompute.

Prasyarat

Sebelum mendaftarkan UDF, Anda harus menjalankan perintah ADD JAR <localfile> [COMMENT '<comment>'][-f]; untuk menambahkan sumber daya yang diperlukan ke proyek MaxCompute. Untuk informasi lebih lanjut, lihat ADD JAR.

Batasan

  • Nama fungsi harus unik dalam sebuah proyek. Anda tidak dapat membuat fungsi dengan nama yang sama dengan fungsi yang sudah ada di proyek tersebut.

  • UDF tidak dapat menimpa fungsi bawaan MaxCompute. Hanya pemilik proyek yang dapat menggunakan UDF untuk menimpa fungsi bawaan. Jika Anda menggunakan UDF yang menimpa fungsi bawaan, informasi peringatan akan ditampilkan di Ringkasan Logview pekerjaan Anda setelah pernyataan SQL dieksekusi.

Sintaksis

CREATE FUNCTION <function_name> AS <'package_to_class'> USING <'resource_list'>;

Parameter

  • function_name: Wajib. Nama UDF yang ingin dibuat.

  • package_to_class: Wajib. Kelas dari UDF yang ingin dibuat. Parameter ini peka huruf besar/kecil dan harus diapit oleh tanda kutip tunggal (').

    • Untuk UDF Java, tentukan nama ini sebagai nama kelas lengkap dari nama paket tingkat atas hingga nama kelas UDF.

    • Untuk UDF Python, tentukan nama ini dalam format Nama skrip Python.Nama kelas.

      Catatan

      Nama skrip Python mengacu pada nama sumber daya dasar yang secara unik mengidentifikasi sumber daya. Sebagai contoh, jika Anda mengunggah sumber daya sebagai pyudf_test.py dan kemudian mengubah namanya menjadi PYUDF_TEST.py di DataStudio atau menggunakan klien MaxCompute untuk menimpanya, nama sumber daya dasar tetap pyudf_test.py. Oleh karena itu, ketika Anda mendaftarkan fungsi yang ditentukan pengguna, nama kelas harus pyudf_test.SampleUDF. Anda dapat menjalankan perintah LIST RESOURCES; untuk melihat nama dasar dari semua sumber daya.

  • resource_list: Wajib. Daftar sumber daya yang digunakan oleh UDF.

    • Daftar sumber daya harus mencakup sumber daya yang berisi kode UDF. Pastikan bahwa sumber daya telah diunggah ke MaxCompute.

    • Jika kode memanggil API Cache Terdistribusi untuk membaca file sumber daya, daftar sumber daya ini juga harus mencakup daftar file sumber daya yang dibaca oleh UDF.

    • Daftar sumber daya terdiri dari beberapa nama sumber daya dan harus diapit oleh tanda kutip tunggal ('). Nama sumber daya harus dipisahkan oleh koma (,).

    • Untuk menentukan sumber daya dari proyek lain, gunakan format <project_name>/resources/<resource_name>.

    Catatan

    Jika skema diaktifkan dan Anda perlu menggunakan sumber daya dari proyek lain, lihat Bekerja dengan objek dalam skema.

Contoh

  • Contoh 1: Buat fungsi my_lower. Kelas Java UDF org.alidata.odps.udf.examples.Lower berada di my_lower.jar.

    CREATE FUNCTION my_lower AS 'org.alidata.odps.udf.examples.Lower' USING 'my_lower.jar';
  • Contoh 2: Buat fungsi my_lower. Kelas Python UDF MyLower berada di skrip pyudf_test.py dalam proyek test_project.

    CREATE FUNCTION my_lower as 'pyudf_test.MyLower' using 'test_project/resources/pyudf_test.py';
  • Contoh 3: Buat fungsi test_udtf. Kelas Java UDF com.aliyun.odps.examples.udf.UDTFResource berada di udtfexample1.jar, dan fungsi tersebut juga bergantung pada sumber daya FILE file_resource.txt, sumber daya Tabel table_resource1, dan sumber daya Arsip test_archive.zip.

    CREATE FUNCTION test_udtf AS 'com.aliyun.odps.examples.udf.UDTFResource' USING 'udtfexample1.jar, file_resource.txt, table_resource1, test_archive.zip';

Pernyataan terkait

  • FUNCTION: Jika Anda tidak perlu menyimpan fungsi SQL dalam sistem metadata MaxCompute, Anda dapat membuat fungsi SQL sementara. Fungsi ini hanya berlaku untuk skrip SQL saat ini.

  • DELETE FUNCTION: Menghapus suatu fungsi. Anda dapat menulis UDF dan memanggil metode delete_function() dari objek entri MaxCompute untuk menghapus UDF tersebut.

  • DROP FUNCTION: Menghapus UDF yang ada dari Proyek MaxCompute.

  • DESC FUNCTION: Melihat informasi UDF tertentu dalam Proyek MaxCompute. Informasi tersebut mencakup nama, pemilik, waktu pembuatan, nama kelas, dan daftar sumber daya dari UDF.

  • DESKRIPSI FUNGSI: Melihat informasi UDF tertentu dalam proyek MaxCompute. Informasi tersebut mencakup nama, pemilik, waktu pembuatan, nama kelas, dan daftar sumber daya UDF.

  • PERBARUI FUNGSI: Memperbarui sebuah fungsi. Anda dapat menulis UDF dan memanggil metode pembaruan MaxCompute untuk memperbarui UDF.