近日,阿里雲發佈PyODPS 0.7.18,主要是針對聚合函數進行優化同時新增對Python 3.7支持。web
PyODPS是MaxCompute的Python版本的SDK,SDK的意思很是普遍,輔助開發某一類軟件的相關文檔、範例和工具的集合均可以叫作「SDK」。 PyODPS在這裏的做用是提供了對MaxCompute對象的基本操做和DataFrame框架,能夠輕鬆地在MaxCompute上進行數據分析。算法
PyODPS對於MaxCompute來講有多重要?
首先MaxCompute是一種快速、徹底託管的GB/TB/PB級數據倉庫解決方案。MaxCompute能夠爲用戶提供完善的數據導入方案以及多種經典的分佈式計算模型,更快速的解決海量數據計算問題,有效下降企業成本,並保障數據安全。sql
在MaxCompute上,你們有不少種分析和機器學習的方式。你們能夠用在數加的web界面編寫SQL,提交SQL做業;能夠用console直接執行SQL,等等等。那機器學習呢,你們須要經過PAI命令提交PAI任務,或者在xlab上操做xlib;畫圖呢?導出數據繪圖或者使用xlab。而這一切工具,都是割裂的,你不得不在各個地方進行切換,並且,也沒有傳統的數據分析和機器學習的快感。安全
那傳統的任務是怎麼作的呢,使用RStudio或者jupyter notebook,但對於Pythoner,用pandas進行數據分析、繪圖,再用scikit-learn執行機器學習算法,在一個notebook裏,能作全部想作的事情,很是高效。框架
如今呢,整合這一切的就是PyODPS,包含有基礎MaxCompute SDK,所以一切對MaxCompute模型均可以操做。除此以外,還包括了DataFrame框架,和機器學習模塊,這一切操做都進行了整合。機器學習
PyODPS具體實操
安裝
PyODPS支持Python2.6以上(包括Python3),系統安裝pip後,只需運行pip install pyodps,PyODPS的相關依賴便會自動安裝。
快速開始
首先,用阿里雲帳號初始化一個MaxCompute的入口,以下所示:
分佈式
根據上述操做初始化後,即可對錶、資源、函數等進行操做。
項目空間
項目空間是MaxCompute的基本組織單元,相似於Database的概念。
您可經過 get_project獲取到某個項目空間,以下所示:
函數
表操做
經過調用 list_tables能夠列出項目空間下的全部表,以下所示:
工具
經過調用 exist_table能夠判斷表是否存在,經過調用 get_table能夠獲取表。學習
建立表的Schema
初始化的方法有兩種,以下所示:
經過表的列和可選的分區來初始化。
經過調用Schema.from_lists,雖然調用更加方便,但顯然沒法直接設置列和分區的註釋。
建立表
您可使用表的Schema來建立表,操做以下所示:
也可使用逗號鏈接的 字段名 字段類型字符串組合來建立表,操做以下所示:
在未經設置的狀況下,建立表時,只容許使用bigint、double、decimal、string、datetime、boolean、map和array類型。
若是您的服務位於公共雲,或者支持tinyint、struct等新類型,能夠設置 options.sql.use_odps2_extension = True,以打開這些類型的支持,示例以下:
獲取表數據
您可經過如下兩種方法獲取表數據。
經過調用head獲取表數據,但僅限於查看每張表開始的小於1萬條的數據,以下所示:
經過在table上執行open_reader操做,打開一個reader來讀取數據。您可使用with表達式,也能夠不使用。
經過使用Tunnel API讀取表數據,open_reader操做其實也是對Tunnel API的封裝。
寫入數據
相似於 open_reader,table對象一樣能夠執行 open_writer來打開writer,並寫數據。以下所示:
一樣,向表中寫入數據也是對Tunnel API的封裝,更多詳情請參見數據上傳下載通道。
刪除表
刪除表的操做,以下所示: