国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PyODPS DataFrame:統(tǒng)一的數(shù)據(jù)查詢語言

李義 / 1113人閱讀

摘要:而真正的執(zhí)行根據(jù)具體的輸入數(shù)據(jù),來決定執(zhí)行的后端??梢钥吹?,就是一個(gè)統(tǒng)一的數(shù)據(jù)查詢語言,用戶不需要改寫一行代碼,就可以根據(jù)輸入讓數(shù)據(jù)在本地和數(shù)據(jù)庫上執(zhí)行,由于框架的靈活性,我們甚至還可以擴(kuò)展出非執(zhí)行后端的支持。

摘要: 前幾天,PyODPS發(fā)布了0.7版本,這篇文章給大家介紹下PyODPS新版本帶來的重要特性。 之前也有若干篇文章介紹過了,我們PyODPS DataFrame是延遲執(zhí)行的,在調(diào)用立即執(zhí)行的方法,比如execute、persist等之前,都只是構(gòu)建了表達(dá)式。

點(diǎn)此查看原文:http://click.aliyun.com/m/41051/

前幾天,PyODPS發(fā)布了0.7版本,這篇文章給大家介紹下PyODPS新版本帶來的重要特性。

之前也有若干篇文章介紹過了,我們PyODPS DataFrame是延遲執(zhí)行的,在調(diào)用立即執(zhí)行的方法,比如execute、persist等之前,都只是構(gòu)建了表達(dá)式。而真正的執(zhí)行根據(jù)具體的輸入數(shù)據(jù),來決定執(zhí)行的后端。

比如,我們可以根據(jù)輸入是pandas DataFrame(本地?cái)?shù)據(jù)),還是MaxCompute Table(MaxCompute數(shù)據(jù))來決定是在本地執(zhí)行,還是在MaxComput上執(zhí)行。

</>復(fù)制代碼

  1. In [1]: import pandas as pd
  2. In [2]: pd_df = pd.DataFrame({"a": range(3)})
  3. In [3]: from odps.df import DataFrame
  4. In [4]: df = DataFrame(pd_df) # 本地?cái)?shù)據(jù)
  5. In [5]: df.a.sum()
  6. |==========================================| 1 / 1 (100.00%) 0s
  7. 3
  8. In [6]: %load_ext odps
  9. In [7]: %enter
  10. Out[7]:
  11. In [8]: df = DataFrame(o.get_table("pyodps_iris")) # MaxCompute數(shù)據(jù)
  12. In [9]: df.sepal_width.sum()
  13. |==========================================| 1 / 1 (100.00%) 15s
  14. 458.10000000000014

數(shù)據(jù)庫執(zhí)行

來到了0.7版本,我們的后端武器庫進(jìn)一步擴(kuò)充,現(xiàn)在我們支持Postgresql和MySQL,原則上我們支持所有的主流數(shù)據(jù)庫,但我們只在這兩個(gè)數(shù)據(jù)庫上做了測試。

我們的數(shù)據(jù)庫執(zhí)行后端使用 sqlalchemy 實(shí)現(xiàn),想要執(zhí)行還需要對(duì)應(yīng)數(shù)據(jù)庫的driver。

現(xiàn)在,如果DataFrame輸入的數(shù)據(jù)是sqlalchemy Table,那么我們就可以使用數(shù)據(jù)庫后端來執(zhí)行。

</>復(fù)制代碼

  1. In [24]: mysql_engine = sqlalchemy.create_engine("mysql://root:123@localhost/movielens")
  2. In [25]: metadata = sqlalchemy.MetaData(bind=mysql_engine) # 需要綁定engine
  3. In [26]: table = sqlalchemy.Table("top_users", metadata, extend_existing=True, autoload=True)
  4. In [27]: top_users = DataFrame(table)
  5. In [28]: top_users.age.sum()
  6. |==========================================| 1 / 1 (100.00%) 0s
  7. 763

對(duì)于postgresql也是一樣。 值得注意的是,現(xiàn)在還有部分DataFrame操作,比如自定義函數(shù)尚未支持?jǐn)?shù)據(jù)庫后端 。

可以看到,PyODPS DataFrame就是一個(gè)統(tǒng)一的數(shù)據(jù)查詢語言,用戶不需要改寫一行代碼,就可以根據(jù)輸入讓數(shù)據(jù)在MaxCompute、本地和數(shù)據(jù)庫上執(zhí)行,由于DataFrame框架的靈活性,我們甚至還可以擴(kuò)展出非SQL執(zhí)行后端的支持。

JOIN或者UNION數(shù)據(jù)庫和MaxCompute數(shù)據(jù)

過去 一篇文章 提到過,我們可以join或者union本地和MaxCompute上的數(shù)據(jù),這樣的典型場景就是,比如我有個(gè)本地excel文件,我可以輕松讀取成本地DataFrame,然后直接就可以和MaxCompute數(shù)據(jù)進(jìn)行操作,省去了一大堆麻煩的過程。

現(xiàn)在,我們也同樣可以join 數(shù)據(jù)庫和MaxCompute上的數(shù)據(jù),試想,有一堆用戶數(shù)據(jù)是在數(shù)據(jù)庫中進(jìn)行處理,然后我們無需經(jīng)過同步數(shù)據(jù)等繁瑣的過程,我們就可以直接join 數(shù)據(jù)庫和MaxCompute上的數(shù)據(jù),這是何其方便的事情。

比如:

</>復(fù)制代碼

  1. In [29]: ratings = o.get_table("movielens_ratings").to_df()
  2. In [32]: female_top_users = top_users[top_users.sex == "F"] # MySQL中的數(shù)據(jù)
  3. In [33]: ratings.join(female_top_users).rating.mean()
  4. |==========================================| 1 / 1 (100.00%) 14s
  5. 2.9451170298627924

總結(jié)

我們PyODPS一直處在快速迭代的過程中,我們所有所做的努力,都是為了讓大家以更好的體驗(yàn)來進(jìn)行數(shù)據(jù)分析和機(jī)器學(xué)習(xí)。盡管我們很努力,但精力畢竟有限,難免會(huì)有bug,會(huì)有功能不完善。希望大家能給我們提issue,能貢獻(xiàn)代碼就更好啦。

項(xiàng)目文檔:http://pyodps.readthedocs.io
項(xiàng)目地址:https://github.com/aliyun/ali...
提issue:https://github.com/aliyun/ali...

釘釘掃碼:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/17667.html

相關(guān)文章

  • PyODPS DataFrame統(tǒng)一數(shù)據(jù)查詢語言

    摘要:而真正的執(zhí)行根據(jù)具體的輸入數(shù)據(jù),來決定執(zhí)行的后端??梢钥吹?,就是一個(gè)統(tǒng)一的數(shù)據(jù)查詢語言,用戶不需要改寫一行代碼,就可以根據(jù)輸入讓數(shù)據(jù)在本地和數(shù)據(jù)庫上執(zhí)行,由于框架的靈活性,我們甚至還可以擴(kuò)展出非執(zhí)行后端的支持。 摘要: 前幾天,PyODPS發(fā)布了0.7版本,這篇文章給大家介紹下PyODPS新版本帶來的重要特性。 之前也有若干篇文章介紹過了,我們PyODPS DataFrame是延遲執(zhí)行...

    sydMobile 評(píng)論0 收藏0
  • PyODPS開發(fā)中最佳實(shí)踐

    摘要:摘要支持用來對(duì)對(duì)象進(jìn)行操作,它提供了來用類似的接口進(jìn)行大規(guī)模數(shù)據(jù)分析以及預(yù)處理,并且可以用模塊來執(zhí)行機(jī)器學(xué)習(xí)算法?,F(xiàn)在為了讓大家能更好地使用,我們總結(jié)開發(fā)過程中的最佳實(shí)踐,來讓大家更高效地開發(fā)程序。 摘要: PyODPS支持用 Python 來對(duì) MaxCompute 對(duì)象進(jìn)行操作,它提供了 DataFrame API 來用類似 pandas 的接口進(jìn)行大規(guī)模數(shù)據(jù)分析以及預(yù)處理,并且可...

    hellowoody 評(píng)論0 收藏0
  • PyODPS 中使用 Python UDF

    摘要:中使用首先,我們需要寫一個(gè)文件,假設(shè)我們就是把某一列按格式放的一列轉(zhuǎn)成格式。這里我們指定了函數(shù)名叫,主類使我們上傳的文件里的類?,F(xiàn)在我們就可以在中調(diào)用這個(gè)了。這樣我們就完成了在中使用的整個(gè)過程。 摘要: PyODPS 中使用 Python UDF 包含兩方面,一個(gè)是直接使用,也就是在 MaxCompute SQL 中使用;一個(gè)是間接的方式,也就是 PyODPS DataFrame,這種...

    evin2016 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<