Data Studio支持在您的数据分析代码中引用自定义的资源和函数(支持MaxCompute、EMR、CDH、Flink),您需要先创建或上传资源、函数至目标工作空间,上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式创建资源和函数并在节点中使用。
前提条件
通过上传OSS文件方式创建资源时。
使用限制
资源大小
最大支持上传500MB的资源。
资源发布
若您使用的是标准模式的工作空间,则需将资源发布至生产环境,发布后生产环境的项目才会存在该资源。
说明开发环境和生产环境的数据源信息存在差异,查询对应环境的表、资源等操作前,请先明确相应环境的数据源信息。查看不同环境对应的MaxCompute数据源信息,详情请参见创建MaxCompute数据源。
资源管理
DataWorks仅支持查看与管理通过DataWorks上传的资源。
支持的资源和函数
资源
数据源 | 资源 | 支持创建方式 |
MaxCompute | MaxCompute Python 编写好的Python代码,用于注册Python UDF函数。后缀为 |
|
MaxCompute Jar 编译好的Java JAR包,用于运行Java程序。后缀为 | ||
MaxCompute Archive 仅支持将 | ||
MaxCompute File 支持将任意类型文件上传为File资源,实际使用时请以各引擎支持情况为准。 | ||
EMR |
|
|
CDH |
| 本地 |
Flink | Flink Jar 编译好的Java JAR包,用于运行Java程序。后缀为 | 本地 |
函数
支持创建MaxCompute、EMR、CDH和Flink函数。
步骤一:进入资源管理
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在左侧导航栏单击
,进入资源管理。
在资源管理页面,单击新建按钮或
,您也可以先新建目录,规划资源管理目录后,再在相应目录上右键,选择新建,选择具体创建的资源或函数类型。
步骤二:创建资源或函数
创建资源
配置资源的相关信息:
选择文件来源为本地或OSS,然后根据页面提示补充文件内容。
单击顶部的保存,然后单击发布。发布后的资源才能在数据开发中使用。
创建函数
您需基于资源创建函数,因此,创建函数前请先创建资源,并将该资源上传至DataWorks。
配置函数的相关信息。
MaxCompute函数
关键参数说明:
参数
描述
函数类型
选择函数类型,包括MATH(数学运算函数)、AGGREGATE(聚合函数)、STRING(字符串处理函数)、DATE(日期函数)、ANALYTIC(窗口函数)和OTHER(其他函数)。
类名
UDF函数的类名,格式为
资源名.类名
。其中,资源名可以为Java包名称或Python资源名称。DataWorks创建自定义函数时支持使用JAR及Python两种类型的MaxCompute资源,不同类型资源的类名配置如下:
当资源类型为JAR时,配置的类名格式为
Java包名称.实际类名
,您可以在IntelliJ IDEA
中通过Copy Reference
语句获取。例如,
com.aliyun.odps.examples.udf
为Java包的名称,UDAFExample
为实际类名,则类名参数配置为com.aliyun.odps.examples.udf.UDAFExample
。当资源类型为Python时,配置的类名格式为
Python资源名称.实际类名
。例如,
LcLognormDist_sh
为Python资源名称,LcLognormDist_sh
为实际类名,则类名参数配置为LcLognormDist_sh.LcLognormDist_sh
。
说明填写资源名称时,无需添加
.jar
或.py
后缀。资源需要提交并发布后才可以使用。
类型
支持选择资源函数或嵌入式函数:
选择资源函数时,配置资源列表即可。
选择嵌入式函数时,除了选择资源列表外,还需要配置语言(支持JAVA、PYTHON2和PYTHON3)和代码。有关嵌入式函数的更多信息,请参见UDF(嵌入式)。
资源列表
选择注册函数所需使用的资源。
可视化模式:仅支持选择已上传或添加至DataWorks的资源。
脚本模式:支持输入相应数据源中的所有资源。如果UDF中调用了多个资源,则多个资源使用英文逗号(,)分隔。
说明无需填写已添加的资源的路径。
DataWorks不支持可视化上传的资源(如表资源),或已经通过其他方式上传至MaxCompute不在DataWorks可视化管理的资源,都可以用脚本模式手动填写。
命令格式
该UDF的具体使用方法示例。
EMR函数
关键参数说明:
参数
描述
函数类型
选择函数类型,包括MATH(数学运算函数)、AGGREGATE(聚合函数)、STRING(字符串处理函数)、DATE(日期函数)、ANALYTIC(窗口函数)和OTHER(其他函数)。
类名
UDF函数的类名,格式为
资源名.类名
。其中,资源名可以为Java包名称或Python资源名称。DataWorks创建自定义函数时支持使用JAR及Python两种类型的MaxCompute资源,不同类型资源的类名配置如下:
当资源类型为JAR时,配置的类名格式为
Java包名称.实际类名
,您可以在IntelliJ IDEA
中通过Copy Reference
语句获取。例如,
com.aliyun.odps.examples.udf
为Java包的名称,UDAFExample
为实际类名,则类名参数配置为com.aliyun.odps.examples.udf.UDAFExample
。当资源类型为Python时,配置的类名格式为
Python资源名称.实际类名
。例如,
LcLognormDist_sh
为Python资源名称,LcLognormDist_sh
为实际类名,则类名参数配置为LcLognormDist_sh.LcLognormDist_sh
。
说明填写资源名称时,无需添加
.jar
或.py
后缀。资源需要提交并发布后才可以使用。
资源列表
选择注册函数所需使用的资源。
可视化模式:仅支持选择已上传或添加至DataWorks的资源。
脚本模式:支持输入相应数据源中的所有资源。如果UDF中调用了多个资源,则多个资源使用英文逗号(,)分隔。
说明无需填写已添加的资源的路径。
DataWorks不支持可视化上传的资源(如表资源),或已经通过其他方式上传至MaxCompute不在DataWorks可视化管理的资源,都可以用脚本模式手动填写。
命令格式
该UDF的具体使用方法示例。
CDH函数
关键参数说明:
参数
描述
函数类型
选择函数类型,包括MATH(数学运算函数)、AGGREGATE(聚合函数)、STRING(字符串处理函数)、DATE(日期函数)、ANALYTIC(窗口函数)和OTHER(其他函数)。
类名
UDF函数的类名,格式为
资源名.类名
。其中,资源名可以为Java包名称或Python资源名称。DataWorks创建自定义函数时支持使用JAR及Python两种类型的MaxCompute资源,不同类型资源的类名配置如下:
当资源类型为JAR时,配置的类名格式为
Java包名称.实际类名
,您可以在IntelliJ IDEA
中通过Copy Reference
语句获取。例如,
com.aliyun.odps.examples.udf
为Java包的名称,UDAFExample
为实际类名,则类名参数配置为com.aliyun.odps.examples.udf.UDAFExample
。当资源类型为Python时,配置的类名格式为
Python资源名称.实际类名
。例如,
LcLognormDist_sh
为Python资源名称,LcLognormDist_sh
为实际类名,则类名参数配置为LcLognormDist_sh.LcLognormDist_sh
。
说明填写资源名称时,无需添加
.jar
或.py
后缀。资源需要提交并发布后才可以使用。
资源列表
选择注册函数所需使用的资源。
可视化模式:仅支持选择已上传或添加至DataWorks的资源。
脚本模式:支持输入相应数据源中的所有资源。如果UDF中调用了多个资源,则多个资源使用英文逗号(,)分隔。
说明无需填写已添加的资源的路径。
DataWorks不支持可视化上传的资源(如表资源),或已经通过其他方式上传至MaxCompute不在DataWorks可视化管理的资源,都可以用脚本模式手动填写。
命令格式
该UDF的具体使用方法示例。
单击顶部的保存,然后单击发布。发布后的函数才能在数据开发中使用。
步骤三:使用资源或函数
创建资源或函数对应类型的数据开发节点。
在编辑数据开发节点时,在左侧导航栏单击资源管理,然后找到目标资源或函数后,右键选择引用资源或引用函数。
引用资源成功后,会显示
##@resource_reference{"资源名称"}
格式的代码。例如,PyODPS 3节点显示的样式为##@resource_reference{"资源名称"}
。各类型节点显示格式存在差异,请以实际界面为准。说明如果PyODPS代码依赖第三方包,需要通过自定义镜像安装所需的包到运行环境,然后再在运行环境中执行PyODPS代码,自定义镜像的更多信息,请参见镜像管理。
引用函数成功后,在当前节点编辑页面快速生成自定义函数名称。