在本章节我们将介绍如何使用Eclipse插件开发并在本地运行UDF。UDAF、UDTF的编写执行过程与UDF类似,均可参考UDF的示例介绍完成。ODPS Eclipse插件提供两种运行UDF的方式:菜单栏和右键单击快速运行方式。

菜单栏运行

  1. 从菜单栏选择Run > Run Configurations…弹出如下对话框:


  2. 用户可以新建一个Run Configuration,选择运行的UDF类及类型、选择ODPS Project、填写输入表信息,如:


    上述配置中,Table表示UDF的输入表,Partitions表示读取某个分区下的数据,分区由逗号分隔,Columns表示列,将依次作为UDF函数的参数被传入,列名由逗号分隔。

  3. 点击Run运行,运行结果将显示在控制台中:


右键单击快速运行

  1. 选中一个udf.java文件(比如:UDFExample.java)并单击鼠标右键,选择Run As > Run UDF|UDAF|UDTF


  2. 配置信息如下:


    上述配置中,Table表示UDF的输入表,Partitions表示读取某个分区下的数据,分区由逗号分隔,Columns表示列,将依次作为UDF函数的参数被传入,列名由逗号分隔。

  3. 点击Finish后,运行UDF,获得输出结果。

运行用户自定义UDF程序

右击一个工程并选择New > UDF(或者选择菜单栏File > New > UDF)。

填写UDF类名然后点击Finish。在对应的src目录下生成与UDF类名同名的Java文件,编辑该java文件内容:

package odps;
import com.aliyun.odps.udf.UDF;
public class UserUDF extends UDF {
      /**
       * project: example_project 
       * table: wc_in1 
       * columns: col1,col2
       * 
       */
      public String evaluate(String a, String b) {
        return "ss2s:" + a + "," + b;
      }
}

右击该java文件(如UserUDF.java),选择Run As,再选择ODPS UDF|UDTF|UDAF:



配置如下对话框:



点击Finish,得出结果:

ss2s:A1,A2
ss2s:A1,A2
ss2s:A1,A2
ss2s:A1,A2

本示例中仅给出UDF的运行示例,UDTF的运行方式与UDF基本相同,不做特殊说明。