天天看點

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

2017/12/20 北京雲栖大會上阿裡雲MaxCompute釋出了最新的功能Python UDF,萬衆期待的功能終于支援啦,我怎麼能不一試為快,今天就分享如何通過Studio進行Python udf開發。

前置條件

MaxCompute Studio支援Python UDF開發,前提需要安裝python, pyodps和idea的python插件。

安裝Python:可以Google或者百度搜尋下如何安裝。

Intellij IDEA中安裝Python插件。搜尋Python Community Edition插件并安裝

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

配置studio module對python的依賴。

File -> Project structure,添加python sdk:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

File -> Project structure,添加python facets:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

File -> Project structure,配置module依賴python facets:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

環境都準備好後,既可在對應依賴的module裡建立進行python udf開發。

右鍵 new | MaxCompute Python,彈框裡輸入腳本名稱,選擇類型為python udf:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

生成的模闆已自動填充架構代碼,隻需要編寫UDF的入參出參,以及函數邏輯:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

代碼開發好後,可以在Studio中進行本地調試。Studio支援下載下傳表的部分sample資料到本地運作,進行debug,步驟如下:

右鍵python udf類,點選”運作”菜單,彈出run configuration對話框。UDF|UDAF|UDTF一般作用于select子句中表的某些列,此處需配置MaxCompute project,table和column(中繼資料來源于project explorer視窗和warehouse下的example項目):

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發
MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

然後本地運作架構會根據指定的列,擷取data檔案裡指定列的資料,調用UDF本地運作。

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

代碼調試好後,将python腳本添加為MaxCompute的Resource:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發
注意此處選擇的MaxCompute project必須是已經申請開通python udf的project。

注冊python 函數:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

在sql腳本中編輯MaxCompute sql試用python udf:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發

好了,一個簡單完整的python UDF通過Studio開發實踐分享完成。

更多python UDF可以參考其他文章:

<a href="https://yq.aliyun.com/articles/300307">北京雲栖大會MaxCompute又出大招,Python UDF搶先體驗!</a>

<a href="https://yq.aliyun.com/articles/304494?spm=5176.100239.blogcont300307.18.wUBlgJ">Python on MaxCompute之UDF操作指令行</a>

<a href="https://yq.aliyun.com/articles/300445?spm=5176.100239.blogcont300307.17.wUBlgJ">Python實作MaxCompute UDF/UDAF/UDTF</a>

使用MaxCompute的pyodps和Studio有疑惑可以工單咨詢,更多探讨可以加入對應釘釘群一起暢聊:

MaxCompute Studio使用心得系列6——一個工具完成整個Python UDF開發