摘要: 2017/12/20 北京云栖大会上阿里云 MaxCompute 发布了最新的功能 Python UDF,万众期待的功能终于支持啦,我怎么能不一试为快,今天就分享如何通过 Studio 进行 Python udf 开发.
http://click.aliyun.com/m/40729/
2017/12/20 北京云栖大会上阿里云 MaxCompute 发布了最新的功能 Python UDF,万众期待的功能终于支持啦,我怎么能不一试为快,今天就分享如何通过 Studio 进行 Python udf 开发.
前置条件
了解到,虽然功能发布,不过还在公测阶段,如果想要使用,还得申请开通: https://page.aliyun.com/form/odps_py/pc/index.htm .这里我就不介绍申请开通具体流程了.
环境准备
MaxCompute Studio 支持 Python UDF 开发,前提需要安装 python, pyodps 和 idea 的 python 插件.
1. 安装 Python:可以 Google 或者百度搜索下如何安装.
2. 安装 pyodps:可以参考 python sdk 文档的安装步骤.即,在 Python 2.6 以上(包括 Python 3),系统安装 pip 后,只需运行下 pip install pyodps,PyODPS 的相关依赖便会自动安装.
3.Intellij IDEA 中安装 Python 插件.搜索 Python Community Edition 插件并安装
配置 studio module 对 python 的依赖.
File -> Project structure,添加 python sdk:
File -> Project structure,添加 python facets:
File -> Project structure,配置 module 依赖 python facets:
开发 Python UDF
环境都准备好后,既可在对应依赖的 module 里创建进行 python udf 开发.
新建 python 脚本.
右键 new | MaxCompute Python,弹框里输入脚本名称,选择类型为 python udf:
生成的模板已自动填充框架代码,只需要编写 UDF 的入参出参,以及函数逻辑:
本地调试
代码开发好后,可以在 Studio 中进行本地调试.Studio 支持下载表的部分 sample 数据到本地运行,进行 debug,步骤如下:
右键 python udf 类,点击 "运行" 菜单,弹出 run configuration 对话框.UDF|UDAF|UDTF 一般作用于 select 子句中表的某些列,此处需配置 MaxCompute project,table 和 column(元数据来源于 project explorer 窗口和 warehouse 下的 example 项目):
点击 OK 后,通过 tunnel 自动下载指定表的 sample 数据到本地 warehouse 目录(若之前已下载过,则不会再次重复下载,否则利用 tunnel 服务下载数据.默认下载 100 条,如需更多数据测试,可自行使用 console 的 tunnel 命令或者 studio 的表下载功能).下载完成后,可以在 warehouse 目录看到下载的 sample 数据.这里用户也可以使用 warehouse 里的数据进行调试,具体可参考 java udf 开发中的关于本地运行的 warehouse 目录 " 部分).
然后本地运行框架会根据指定的列,获取 data 文件里指定列的数据,调用 UDF 本地运行.
注册发布 Python UDF
代码调试好后,将 python 脚本添加为 MaxCompute 的 Resource:
注意此处选择的 MaxCompute project 必须是已经申请开通 python udf 的 project.
注册 python 函数:
在 sql 脚本中编辑 MaxCompute sql 试用 python udf:
好了,一个简单完整的 python UDF 通过 Studio 开发实践分享完成.
更多 python UDF 可以参考其他文章: 北京云栖大会 MaxCompute 又出大招,Python UDF 抢先体验! Python on MaxCompute 之 UDF 操作命令行 Python 实现 MaxCompute UDF/UDAF/UDTF
来源: http://geek.csdn.net/news/detail/252474