本文将为您介绍如何使用Eclipse开发工具,配合ODPS插件进行Java UDF开发的全流程操作。

准备工作

开始使用Eclipse进行Java UDF开发前,您需要进行如下准备工作:

  1. 使用Eclipse安装ODPS插件
  2. 创建ODPS Project。
    1. 在Eclipse中选择File > New > ODPS Project,输入项目名称,单击Config ODPS console installation path,配置odpscmd客户端安装路径。
      配置路径
    2. 输入客户端整体安装包的路径后,单击Apply,ODPS插件会为您自动解析出客户端Version。
      Apply
    3. 单击Finish,即可完成项目的创建。

开发步骤

  1. 在ODPS Project中创建Java UDF。
    1. 在左侧Package Exploer中右键单击新建的ODPS Java UDF项目,选择New > UDF
      UDF
    2. 输入UDF的Package名称(本例中为com.aliyun.example.udf)和Name(本例中为Upper2Lower),单击Finish,即可完成UDF的创建。
      Finish
    完成UDF创建后,您即可看到生成的默认Java代码,请注意不要改变evaluate()方法的名称。
    默认代码
  2. 实现UDF类文件中的evaluate方法。
    将您想要实现的功能代码写到evaluate方法中,且不要改变evaluate()方法的名称。此处以实现大写字母转化为小写字母为例。
    示例
    package com.aliyun.example.udf;
    
    import com.aliyun.odps.udf.UDF;
    
    public class Upper2Lower extends UDF {
        public String evaluate(String s) {
            if (s == null) { return null; }
            return s.toLowerCase();
        }
    }

    代码编写完成后,请及时保存。

测试Java UDF

为了测试Java UDF代码,您可以先在MaxCompute上存放一些大写字母作为输入数据。您可以在odpscmd客户端使用SQL语句create table upperABC(upper string);,新建一个名为upperABC的测试表格。
测试表格

使用SQL语句insert into upperABC values('ALIYUN');,在表格中插入测试用的大写字母ALIYUN。

完成测试数据准备后,单击Run > Run Configurations,配置测试参数。
配置测试参数
配置测试参数:Project一栏中填写创建的Java ODPS Project名称,Select ODPS project中填写您的MaxCompute项目名称(请注意与odpscmd客户端当前连接的MaxCompute项目保持一致),Table一栏填写刚才创建的测试表格名称。完成配置后单击Run进行测试。
RUN
您可以在Console中查看测试结果。
查看测试结果
说明 测试结果只是Eclipse获取表格中的数据后在本地转换的结果,并不代表MaxCompute中的数据已经转换为小写的aliyun了。

使用Java UDF

确定测试结果正确后,即可开始使用Java UDF,操作步骤如下:

  1. 导出Jar包
    在左侧新建的ODPS Project上右键单击,选择Export
    Export
    在弹框中选择JAR file,单击Next
    Next
    在对话框中JAR file处填写Jar包名称,单击Finish,即可导出至当前workspace目录下。
    finish
  2. 使用DataWorks引用Jar包
    登录DataWorks控制台,进入同一个项目(本例中为项目MaxCompute_DOC)的数据开发页面。选择业务流程 > 资源 > 新建资源 > JAR,新建一个JAR类型资源
    新建资源
    在弹窗中上传您刚导出的JAR资源。
    上传资源
    刚才只是将JAR资源上传至DataWorks,接下来您需要单击进入JAR资源,单击提交并解锁(提交)按钮,将资源上传至MaxCompute。
    上传资源

    完成上传后,您可以在odpscmd客户端使用list resources命令查看您上传的JAR资源。

  3. 创建资源函数
    现在Jar资源已经存在于您的MaxCompute项目中了,接下来您需要单击业务流程 > 函数 > 新建函数,新建一个与Jar资源对应的函数,本例中函数名称为upperlower_Java。完成后,依次单击保存提交并解锁(提交)
    保存

    完成提交后,您可以在odpscmd客户端使用list functions命令,查看已注册的函数。至此,您使用Eclipse开发工具注册的Java UDF函数upperlower_Java已经可用了。

使用Java UDF结果验证

打开您的odpscmd命令行界面,运行select upperlower_Java('ABCD') from dual;命令,可以观察到该Java UDF已经可以转换字母的大小写了,函数运行正常。
结果验证

更多信息

更多Java UDF开发示例请参见Java UDF

如果您要使用IntelliJ IDEA开发工具完成完整的Java UDF开发过程,请参见IntelliJ IDEA Java UDF开发最佳实践