Tüm Ürünler
Search
Belge Merkezi

MaxCompute:CREATE FUNCTION

Son Güncelleme:Oct 04, 2026

MaxCompute projesinde kullanıcı tanımlı bir işlev (UDF) oluşturur.

Önkoşullar

Başlamadan önce şunları yaptığınızdan emin olun:

  • Gerekli kaynakları, ADD JAR komutunu kullanarak MaxCompute projenize ekleyin. Daha fazla bilgi için bkz. ADD JAR.

Sınırlamalar

  • İşlev adları bir proje içinde benzersiz olmalıdır. Mevcut bir işlevle aynı ada sahip bir işlev oluşturamazsınız.

  • Kullanıcı tanımlı işlevler, MaxCompute'ün yerleşik işlevlerinin üzerine yazamaz. Yalnızca proje sahibi, kullanıcı tanımlı işlevleri kullanarak yerleşik işlevlerin üzerine yazabilir. Bir kullanıcı tanımlı işlev yerleşik bir işlevin üzerine yazarsa, SQL ifadesi çalıştırıldıktan sonra işin Logview bölümündeki Summary alanında bir uyarı görüntülenir.

Söz dizimi

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

Parametreler


Parametre


Zorunlu


Açıklama


function_name


Evet


Oluşturulacak kullanıcı tanımlı işlevin adı. Proje içinde benzersiz olmalıdır.


package_to_class


Evet


Kullanıcı tanımlı işlevin sınıfı. Büyük/küçük harfe duyarlıdır. Tek tırnak işaretleri (') içine alınmalıdır. Java kullanıcı tanımlı işlevi için, üst düzey paketten kullanıcı tanımlı işlev sınıfına kadar tam nitelikli sınıf adını belirtin. Python kullanıcı tanımlı işlevi için <Python_script_name>.<Class_name> biçimini kullanın.


resource_list


Evet


Kullanıcı tanımlı işlev tarafından kullanılan kaynaklar. Tek tırnak işaretleri (') içine alınmalıdır. Birden fazla kaynağı virgülle (,) ayırın. Başka bir projedeki bir kaynağa başvurmak için <project_name>/resources/<resource_name> biçimini kullanın.

Python kullanıcı tanımlı işlevleri için package_to_class hakkında notlar

Python betiği adı, kaynağı benzersiz şekilde tanımlayan temel kaynak adına karşılık gelir. Örneğin, bir kaynağı pyudf_test.py olarak yüklerseniz ve ardından DataStudio'da PYUDF_TEST.py olarak yeniden adlandırırsanız veya MaxCompute istemcisini kullanarak üzerine yazarsanız, temel kaynak adı yine de pyudf_test.py olarak kalır. Bu nedenle, kullanıcı tanımlı işlevi kaydederken sınıf adı pyudf_test.SampleUDF olmalıdır. Tüm kaynakların temel adlarını görüntülemek için LIST RESOURCES; komutunu çalıştırın.

resource_list hakkında notlar

  • Liste, kullanıcı tanımlı işlev kodunu içeren kaynakları içermelidir. Bu kaynakların MaxCompute'e zaten yüklendiğinden emin olun.

  • Kullanıcı tanımlı işlev, kaynak dosyalarını okumak için Dağıtılmış Önbellek API'sini çağırıyorsa bu kaynak dosyalarını da listeye dahil edin.

  • Şema etkinleştirilmişse ve diğer projelerdeki kaynakları kullanmanız gerekiyorsa bkz. Work with objects in a schema.

Örnekler

Java kullanıcı tanımlı işlevi oluşturma

Aşağıdaki örnekte my_lower işlevi oluşturulur. Java kullanıcı tanımlı işlev sınıfı org.alidata.odps.udf.examples.Lower, my_lower.jar dosyasında bulunur.

CREATE FUNCTION my_lower AS 'org.alidata.odps.udf.examples.Lower' USING 'my_lower.jar';

Başka bir projeden Python kullanıcı tanımlı işlevi oluşturma

Aşağıdaki örnekte my_lower işlevi oluşturulur. Python kullanıcı tanımlı işlev sınıfı MyLower, test_project projesindeki pyudf_test.py dosyasında tanımlanmıştır.

CREATE FUNCTION my_lower as 'pyudf_test.MyLower' using 'test_project/resources/pyudf_test.py';

Birden fazla kaynak bağımlılığı olan bir kullanıcı tanımlı işlev oluşturma

Aşağıdaki örnekte test_udtf işlevi oluşturulur. Java kullanıcı tanımlı işlev sınıfı com.aliyun.odps.examples.udf.UDTFResource, udtfexample1.jar dosyasında bulunur. İşlev ayrıca bir FILE kaynağına (file_resource.txt), bir Table kaynağına (table_resource1) ve bir Archive kaynağına (test_archive.zip) bağımlıdır.

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

Sonraki adımlar

  • FUNCTION: Yalnızca geçerli SQL betiğine uygulanan ve MaxCompute meta veri sisteminde depolanmayan geçici bir SQL işlevi oluşturun.

  • DROP FUNCTION: MaxCompute projesinden mevcut bir kullanıcı tanımlı işlevi silin.

  • DELETE FUNCTION: Bir MaxCompute giriş nesnesinin delete_function() yöntemini kullanarak bir işlevi silin.

  • DESC FUNCTION: Kullanıcı tanımlı bir işlevin adını, sahibini, oluşturma zamanını, sınıf adını ve kaynak listesini içeren ayrıntılarını görüntüleyin.

  • LIST FUNCTIONS: MaxCompute projesindeki tüm kullanıcı tanımlı işlevleri görüntüleyin.

  • UPDATE FUNCTION: MaxCompute'ün update yöntemini kullanarak bir kullanıcı tanımlı işlevi güncelleyin.