天天看點

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

近日,阿裡雲釋出PyODPS 0.7.18,主要是針對聚合函數進行優化同時新增對Python 3.7支援。

PyODPS是MaxCompute的Python版本的SDK,SDK的意思非常廣泛,輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做“SDK”。 PyODPS在這裡的作用是提供了對MaxCompute對象的基本操作和DataFrame架構,可以輕松地在MaxCompute上進行資料分析。

PyODPS對于MaxCompute來說有多重要?

首先MaxCompute是一種快速、完全托管的GB/TB/PB級資料倉庫解決方案。MaxCompute可以為使用者提供完善的資料導入方案以及多種經典的分布式計算模型,更快速的解決海量資料計算問題,有效降低企業成本,并保障資料安全。

在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的入口,如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

根據上述操作初始化後,便可對表、資源、函數等進行操作。

項目空間

項目空間是MaxCompute的基本組織單元,類似于Database的概念。

您可通過 get_project擷取到某個項目空間,如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

表操作

通過調用 list_tables可以列出項目空間下的所有表,如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

通過調用 exist_table可以判斷表是否存在,通過調用 get_table可以擷取表。

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援
阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

建立表的Schema

初始化的方法有兩種,如下所示:

通過表的列和可選的分區來初始化。

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

通過調用Schema.from_lists,雖然調用更加友善,但顯然無法直接設定列和分區的注釋。

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

建立表

您可以使用表的Schema來建立表,操作如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

也可以使用逗号連接配接的 字段名 字段類型字元串組合來建立表,操作如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

在未經設定的情況下,建立表時,隻允許使用bigint、double、decimal、string、datetime、boolean、map和array類型。

如果您的服務位于公共雲,或者支援tinyint、struct等新類型,可以設定 options.sql.use_odps2_extension = True,以打開這些類型的支援,示例如下:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

擷取表資料

您可通過以下兩種方法擷取表資料。

通過調用head擷取表資料,但僅限于檢視每張表開始的小于1萬條的資料,如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

通過在table上執行open_reader操作,打開一個reader來讀取資料。您可以使用with表達式,也可以不使用。

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

通過使用Tunnel API讀取表資料,open_reader操作其實也是對Tunnel API的封裝。

寫入資料

類似于 open_reader,table對象同樣可以執行 open_writer來打開writer,并寫資料。如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

同樣,向表中寫入資料也是對Tunnel API的封裝,更多詳情請參見資料上傳下載下傳通道。

删除表

删除表的操作,如下所示:

阿裡雲PyODPS 0.7.18釋出,針對聚合函數進行優化同時新增對Python 3.7支援

了解更多關于PyODPS 0.7.18詳情請戳:

https://help.aliyun.com/document_detail/34615.html?spm=a2c4g.11186623.6.694.175c517cSWoptV

繼續閱讀