This article explains how to use common commands to operate functions in the MaxCompute client.

You can also operate functions using the visualized online data development tools in DataWorks.

Create a Function

Command format:
CREATE FUNCTION <function_name> AS <package_to_class> USING <resource_list>;
  • function_name: An UDF name referenced in SQL.
  • package_to_class: For Java UDF, this name is a fully qualified class name (from top-level package name to UDF class name). This parameter must be in double quotation marks. And, for Python UDF, this name is a python script name. classname. For both Java UDF and python script, use double quotation (““) marks to indicate this parameter. And for the name, use quotation marks.
  • resource_list: Provides resource list used by UDF.
    • Resources that contain UDF code must be included in the list.
    • If the code reads the resource file by the distributed cache interface, this list also contains the list of resource files read by the UDF.
    • The resource list is composed of multiple resource names, separated by a comma (,). The resource list must be in double quotation (“”) marks.
    • Specify the project in which the resource is located as follows: <project_name>/resources/<resource_name>.
  • Suppose a Java UDF class org.alidata.odps.udf.examples.Lower is in my_lower.jar, create function my_lower as follows:
    CREATE FUNCTION my_lower AS 'org.alidata.odps.udf.examples.Lower' USING 'my_lower.jar';
  • Suppose a Python UDF MyLower is used in project,create function my_lower as follows:
    create function my_lower as 'pyudf_test.MyLower' using 'test_project/resources/';
  • Suppose a Java UDF class com.aliyun.odps.examples.udf.UDTFResource is in udtfexample1.jar, and it depends on file resource file_resource.txt and table resource table_resource1,create function test_udtf as follows:
    create function test_udtf as 'com.aliyun.odps.examples.udf.UDTFResource' using 'udtfexample1.jar, file_resource.txt, table_resource1,';
  • Similar to the resource files, the UDF duplicate name can be registered only once.
  • Generally UDF cannot overwrite system built-in functions. Only the project owner has right to overwrite the built-in functions. If you are using a UDF which overwrites the built-in function, the warning is triggered in Summary after SQL execution.

Drop a Function

Command format:
DROP FUNCTION <function_name>;
DROP FUNCTION test_lower;

List Functions

Command format:
list functions; --View all user-defined functions in current project.
list functions -p my_project; --View all user-defined functions in the project 'my_project'.