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.
CatatanNama skrip Python mengacu pada nama sumber daya dasar yang secara unik mengidentifikasi sumber daya. Sebagai contoh, jika Anda mengunggah sumber daya sebagai
pyudf_test.pydan kemudian mengubah namanya menjadiPYUDF_TEST.pydi DataStudio atau menggunakan klien MaxCompute untuk menimpanya, nama sumber daya dasar tetappyudf_test.py. Oleh karena itu, ketika Anda mendaftarkan fungsi yang ditentukan pengguna, nama kelas haruspyudf_test.SampleUDF. Anda dapat menjalankan perintahLIST 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>.
CatatanJika 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 UDForg.alidata.odps.udf.examples.Lowerberada 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 proyektest_project.CREATE FUNCTION my_lower as 'pyudf_test.MyLower' using 'test_project/resources/pyudf_test.py';Contoh 3: Buat fungsi
test_udtf. Kelas Java UDFcom.aliyun.odps.examples.udf.UDTFResourceberada 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.