阿里云PyODPS 0.7.18发布,针对聚合函数进行优化同时新增对Python 3.7支持
近日,阿里云發(fā)布PyODPS 0.7.18,主要是針對聚合函數(shù)進(jìn)行優(yōu)化同時(shí)新增對Python 3.7支持。
PyODPS是MaxCompute的Python版本的SDK,SDK的意思非常廣泛,輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合都可以叫做“SDK”。 PyODPS在這里的作用是提供了對MaxCompute對象的基本操作和DataFrame框架,可以輕松地在MaxCompute上進(jìn)行數(shù)據(jù)分析。
PyODPS對于MaxCompute來說有多重要?
首先MaxCompute是一種快速、完全托管的GB/TB/PB級數(shù)據(jù)倉庫解決方案。MaxCompute可以為用戶提供完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計(jì)算模型,更快速的解決海量數(shù)據(jù)計(jì)算問題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。
在MaxCompute上,大家有很多種分析和機(jī)器學(xué)習(xí)的方式。大家可以用在數(shù)加的web界面編寫SQL,提交SQL作業(yè);可以用console直接執(zhí)行SQL,等等等。那機(jī)器學(xué)習(xí)呢,大家需要通過PAI命令提交PAI任務(wù),或者在xlab上操作xlib;畫圖呢?導(dǎo)出數(shù)據(jù)繪圖或者使用xlab。而這一切工具,都是割裂的,你不得不在各個(gè)地方進(jìn)行切換,而且,也沒有傳統(tǒng)的數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的快感。
那傳統(tǒng)的任務(wù)是怎么做的呢,使用RStudio或者jupyter notebook,但對于Pythoner,用pandas進(jìn)行數(shù)據(jù)分析、繪圖,再用scikit-learn執(zhí)行機(jī)器學(xué)習(xí)算法,在一個(gè)notebook里,能做所有想做的事情,非常高效。
現(xiàn)在呢,整合這一切的就是PyODPS,包含有基礎(chǔ)MaxCompute SDK,因此一切對MaxCompute模型都可以操作。除此之外,還包括了DataFrame框架,和機(jī)器學(xué)習(xí)模塊,這一切操作都進(jìn)行了整合。
PyODPS具體實(shí)操
安裝
PyODPS支持Python2.6以上(包括Python3),系統(tǒng)安裝pip后,只需運(yùn)行pip install pyodps,PyODPS的相關(guān)依賴便會自動安裝。
快速開始
首先,用阿里云賬號初始化一個(gè)MaxCompute的入口,如下所示:
根據(jù)上述操作初始化后,便可對表、資源、函數(shù)等進(jìn)行操作。
項(xiàng)目空間
項(xiàng)目空間是MaxCompute的基本組織單元,類似于Database的概念。
您可通過 get_project獲取到某個(gè)項(xiàng)目空間,如下所示:
表操作
通過調(diào)用 list_tables可以列出項(xiàng)目空間下的所有表,如下所示:
通過調(diào)用 exist_table可以判斷表是否存在,通過調(diào)用 get_table可以獲取表。
創(chuàng)建表的Schema
初始化的方法有兩種,如下所示:
通過表的列和可選的分區(qū)來初始化。
通過調(diào)用Schema.from_lists,雖然調(diào)用更加方便,但顯然無法直接設(shè)置列和分區(qū)的注釋。
創(chuàng)建表
您可以使用表的Schema來創(chuàng)建表,操作如下所示:
也可以使用逗號連接的 字段名 字段類型字符串組合來創(chuàng)建表,操作如下所示:
在未經(jīng)設(shè)置的情況下,創(chuàng)建表時(shí),只允許使用bigint、double、decimal、string、datetime、boolean、map和array類型。
如果您的服務(wù)位于公共云,或者支持tinyint、struct等新類型,可以設(shè)置 options.sql.use_odps2_extension = True,以打開這些類型的支持,示例如下:
獲取表數(shù)據(jù)
您可通過以下兩種方法獲取表數(shù)據(jù)。
通過調(diào)用head獲取表數(shù)據(jù),但僅限于查看每張表開始的小于1萬條的數(shù)據(jù),如下所示:
通過在table上執(zhí)行open_reader操作,打開一個(gè)reader來讀取數(shù)據(jù)。您可以使用with表達(dá)式,也可以不使用。
通過使用Tunnel API讀取表數(shù)據(jù),open_reader操作其實(shí)也是對Tunnel API的封裝。
寫入數(shù)據(jù)
類似于 open_reader,table對象同樣可以執(zhí)行 open_writer來打開writer,并寫數(shù)據(jù)。如下所示:
同樣,向表中寫入數(shù)據(jù)也是對Tunnel API的封裝,更多詳情請參見數(shù)據(jù)上傳下載通道。
刪除表
刪除表的操作,如下所示:
了解更多關(guān)于PyODPS 0.7.18詳情請戳:https://help.aliyun.com/document_detail/34615.html?spm=a2c4g.11186623.6.694.175c517cSWoptV
總結(jié)
以上是生活随笔為你收集整理的阿里云PyODPS 0.7.18发布,针对聚合函数进行优化同时新增对Python 3.7支持的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D--魔方
- 下一篇: 剑指offer之python实现