本文将为您介绍如何新建、上传、引用和下载资源。

如果您的代码或函数中需要使用.jar等资源文件,可以先将资源上传至该工作空间,然后进行引用。

如果现有的系统内置函数无法满足您的需求,DataWorks支持创建自定义函数,实现个性化处理逻辑。将实现逻辑的JAR包上传至工作空间下,便可在创建自定义函数时进行引用。

您可以将文本文件、MaxCompute表、Python代码以及.zip.tgz.tar.gz.tar.jar等压缩包作为不同类型的资源上传到MaxCompute,在UDF及MapReduce的运行过程中读取、使用这些资源。

MaxCompute为您提供读取、使用资源的接口。目前资源包括以下类型:
  • File类型
  • Archive类型:通过资源名称中的后缀识别压缩类型,支持的压缩文件类型包括.zip.tgz.tar.gz.tar.jar
  • JAR类型:编译好的Java JAR包。
  • Python类型:您编写的Python代码,用于注册Python UDF函数。
DataWorks新建资源就是add resource的过程,当前DataWorks仅支持可视化添加JAR和File类型的资源。新建入口都一样,区别如下:
  • JAR资源是用户在线下Java环境编辑Java代码,打JAR包上传到JAR资源类型文件。
  • File类型的小文件资源可以直接在DataWorks上编辑。
  • File类型资源新建时勾选大文件后,也可以上传本地资源文件。
说明 当前支持最大可上传30MB资源。

新增JAR资源实例

  1. 右键单击数据开发下的业务流程,选择新建业务流程
    新建业务流程
  2. 打开新建的业务流程,右键单击资源,选择新建资源 > JAR

  3. 按照命名规则在新建资源对话框输入资源名称,并选择资源类型为JAR,同时选择需要上传本机的JAR包。
    新建资源
    说明
    • 如果此JAR包已经在ODPS客户端上传过,则需要取消勾选上传为ODPS资源本次上传,资源会同步上传至ODPS中,否则上传会报错。
    • 资源名称不一定与上传的文件名一致。
    • 资源名命名规范:1到128个字符,字母、数字、下划线、小数点,大小写不敏感,JAR资源时后缀为.jar
  4. 单击确定,将资源提交到调度开发服务器端。
    提交
  5. 发布节点任务。

    具体操作请参见任务发布

新增Python资源并注册函数实例

  1. 打开新建的业务流程,右键单击资源,选择新建资源 > Python
    Python
  2. 按照命名规则在新建资源对话框输入资源名称,并选择资源类型为Python,并勾选上传为ODPS资源,单击确定
    新建Python
  3. 在您新建的Python资源内编写Python资源代码,示例如下。
    from odps.udf import annotate
    @annotate("string->bigint")
    class ipint(object):
        def evaluate(self, ip):
            try:
                return reduce(lambda x, y: (x << 8) + y, map(int, ip.split('.')))
            except:
                return 0
    单击提交并解锁
    提交并解锁
  4. 右键单击业务流程下的函数,选择新建函数。在新建函数对话框中填写函数名称,单击提交
  5. 填写函数的类名,本例中为ipint.ipint,资源列表填写提交的资源名称,单击提交并解锁
    提交并解锁
  6. 验证ipint函数是否生效并满足预期值,您可以在DataWorks上新建一个ODPS SQL类型节点运行SQL语句查询,示例如下。
    SQL

您也可以在本地创建ipint.py文件,使用MaxCompute客户端上传资源,详情请参见MaxCompute客户端

odps@ MaxCompute_DOC>add py D:/ipint.py;
OK: Resource 'ipint.py' have been created.                

完成上传后,使用客户端直接注册函数,详情请参见注册函数

odps@ MaxCompute_DOC>create function ipint as ipint.ipint using ipint.py;
Success: Function 'ipint' have been created.           

完成注册后,即可正常使用该函数。

引用和下载资源

如果您需要下载资源,可以双击资源选择您需要的资源,单击下载
下载