最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python入門學(xué)習(xí)之Python流處理過程

 更新時間:2021年09月09日 10:48:42   作者:Python文澤老師  
本篇文章屬于Python入門篇,本文主要教大家學(xué)習(xí)Python流處理過程,通過Faust流處理庫來為大家詳細講解,有需要的朋友可以借鑒參考下

Python流處理

Faust是一個流處理庫,將kafka流中的思想移植到Python中

它被用于Robinhood去構(gòu)建高性能的分布式系統(tǒng)和實時數(shù)據(jù)通道,每天處理數(shù)十億的數(shù)據(jù)。

Faust同時提供流處理和事件處理同類型的工具分享例如:Kafka Streams, Apache Spark/Storm/Samza/Flink

它不需要使用一個DSL,僅需要用到Python!這意味著你在做流處理的時候可以使用所有你喜歡的Python庫:

NumPy, PyTorch, Pandas, NLTK, Django, Flask, SQLAlchemy等等。

由于需要使用新的async/await語法和變量類型注釋方法,F(xiàn)aust需要使用Python3.6以上的版本。

這里有一個處理輸入命令流的示例:

Python流處理

這個agent裝飾器定義了一個“流處理器”,它本質(zhì)上是一個Kafka topic,并且可以對接收到的每個事件做一些處理。

agent是一個async def的函數(shù)因此它還可以異步執(zhí)行其他操作如web請求。

這個系統(tǒng)可以持久化狀態(tài),執(zhí)行方式類似于數(shù)據(jù)庫。表被命名成分布式的key/value儲存,你可以使用常規(guī)的Python字典來做這件事。

在每臺機器上的本地用c++編寫的超快嵌入式數(shù)據(jù)庫(被稱為RocksDB)存儲表。

表還可以存儲可選的“窗口”聚合計數(shù),以便跟蹤“前一天的單擊次數(shù)”或“前一個小時的單擊次數(shù)”。與Kafka流一樣,我們支持滾動、跳躍和滑動時間窗口,舊窗口可以過期以阻止數(shù)據(jù)填充。

為了提高可靠性使用Kafka topic作為“預(yù)寫日志”

當(dāng)一個密鑰被更改時,我們將其發(fā)布到更新的日志上。備用節(jié)點使用這個更新日志來保存數(shù)據(jù)的精確副本,并在任何節(jié)點發(fā)生故障時支持立即恢復(fù)。

對于用戶來說,表只是一個字典,但是數(shù)據(jù)在重新啟動和跨節(jié)點復(fù)制之間存在,所以在故障發(fā)生時其他節(jié)點可以自動接管。

您可以通過URL統(tǒng)計頁面瀏覽數(shù)量:

Python流處理

發(fā)送到Kafka topic的數(shù)據(jù)是分區(qū)的,這意味著點擊數(shù)將用URL的這種方式進行分片。因此,同一個URL的每個計數(shù)都會立刻被傳遞給同一個Faust worker實例。

Faust支持任何類型的流數(shù)據(jù)字節(jié)、Unicode和序列化結(jié)構(gòu),同時也支持使用現(xiàn)代Python語法的“模型”來描述流中的keys和value是如何被序列化的。

Python流處理

Faust是靜態(tài)類型的,使用mypy類型檢查器,所以您在編寫應(yīng)用程序時可以充分利用靜態(tài)類型的優(yōu)勢。

Faust源代碼很小,組織良好,是學(xué)習(xí)Kafka流實現(xiàn)的好資源。

在引言頁學(xué)習(xí)更多關(guān)于Faust的知識.jpg

去閱讀更多關(guān)于Faust,系統(tǒng)請求,安裝指導(dǎo),論壇資源等等,或者直接訪問快速開始的教程。在一個編寫流處理的應(yīng)用中去查看關(guān)于Faust應(yīng)用,然后通過使用者手冊深入探討。深層次的信息都根據(jù)不同主題在這個手冊中進行說明

Faust簡介

Faust非常容易使用。在學(xué)習(xí)其他的流處理方法時,你總是需要從一個復(fù)雜的hello-world工程和相應(yīng)的基礎(chǔ)要求開始學(xué)習(xí)。Faust僅僅需要Kafka,剩下的就是只需要Python,如果你知道Python的話你就可以直接使用Faust去做流處理的工作了,并且它可以整合和他相關(guān)的一切。

這兒有一個簡單的應(yīng)用程序你可以做:源代碼是Python的

Python流處理

您可能會被async和await這兩個關(guān)鍵字嚇到,但是您在使用Faust時不需要知道asyncio是如何工作的:只要模仿這些例子就可以得到您想要的結(jié)果。

示例應(yīng)用程序啟動兩個任務(wù):一個是處理流,另一個是向流發(fā)送事件的后臺線程。在實際的應(yīng)用程序中,您的系統(tǒng)將向Kafka topic發(fā)布事件,您的處理器可以從Kafka topic獲取事件信息,并且只需要后臺線程將數(shù)據(jù)輸入到我們的示例中。

高可用性

Faust是高度可用的,并且可以在網(wǎng)絡(luò)問題和服務(wù)器崩潰中生存下來。在節(jié)點失敗的情況下,它可以自動恢復(fù),并且表將接管備用節(jié)點。

分布式的

根據(jù)您的應(yīng)用程序的需要啟動更多實例。

快速

一個單內(nèi)核的Faust worker實例已經(jīng)可以每秒處理數(shù)萬個事件,我們有理由相信,一旦我們能夠支持一個更優(yōu)化的Kafka客戶端,吞吐量就會增加。

靈活性

Faust就是Python,而流是一個無限的異步迭代器。如果您知道如何使用Python,那么您已經(jīng)知道如何使用Faust,它可以與您喜歡的Python庫一起使用,比如Django、Flask、SQLAlchemy、NTLK、NumPy、Scikit、TensorFlow等等。

安裝

您可以通過Python包或從源文件中安裝Faust

使用pip安裝它:

Python流處理

綁定

Faust還定義了一組setuptools擴展,可以用來安裝Faust,并且有一個給定特性的依賴關(guān)系。

您可以在您的需求中或在pip命令行中使用方括號來指定它們。使用逗號分隔多個包:

Python流處理

以下的綁定均是有效的:

商店

Python流處理

最優(yōu)化

Python流處理

傳感器

Python流處理

事件循環(huán)

Python流處理

調(diào)試

Python流處理

下載并從源文件中安裝

您可以這樣安裝它:

image.png

如果當(dāng)前沒有使用virtualenv,則必須以特權(quán)用戶的身份執(zhí)行最后一個命令。

使用開發(fā)版本

您可以使用以下pip命令安裝Faust的最新版本:

Python流處理

常見問題

Faust可以在Django/Flask/etc上使用嗎?

使用gevent

這種方法適用于任何可以與gevent一起工作的阻塞Python庫。

使用gevent需要您安裝aiogevent模塊,您可以將其作為Faust的包進行安裝:

Python流處理

然后要真正的使用gevent作為事件循環(huán),您要么在faust程序中使用-L <faust --loop>

命令:

Python流處理

要么在你腳本的前面加入import mode.loop.gevent

Python流處理

警告

非常重要的是,它位于模塊的最頂端,并且在導(dǎo)入庫之前執(zhí)行。

Faust可以在Tornado上使用嗎?

可以!使用tornado.platform.asyncio

鏈接:http://www.tornadoweb.org/en/stable/asyncio.html

Faust可以在Twisted上使用嗎?

可以!使用asyncio反應(yīng)器實現(xiàn):

鏈接:https://twistedmatrix.com/documents/17.1.0/api/twisted.internet.asyncioreactor.html

是否支持Python3.5或者更早的版本?

目前還沒有支持Python 3.5的計劃,但是歡迎您為這個項目做出貢獻。

以下是實現(xiàn)這一目標所需的一些步驟

  • 源代碼轉(zhuǎn)換以重寫變量注釋到注釋

示例,代碼:

image.png

  • 重寫異步函數(shù)的源代碼轉(zhuǎn)換

示例,代碼:

Python流處理

必須重寫:

Python流處理

你將支持Python2嗎?

目前還沒有支持Python 2的計劃,但是歡迎您為項目做貢獻(上面問題中的細節(jié)也與Python 2相關(guān))。

在本地運行Faust應(yīng)用程序時,我得到的打開文件的最大數(shù)量超過了RocksDB的錯誤。我該怎么解決這個問題呢

您可能需要增加打開文件的最大數(shù)量的限制。

資源

編碼規(guī)范

在項目代碼庫、問題跟蹤器、聊天室和郵件列表中進行交互的每個人都應(yīng)該遵循《Faust行為準則》。

作為這些項目的貢獻者和維護者,為了培養(yǎng)開放和受歡迎的社區(qū),我們承諾尊重所有通過報告問題、發(fā)布特性請求、更新文檔、提交合并請求或補丁和其他活動的人。

我們致力于使參與這些項目的每個人都無騷擾體驗,不論其經(jīng)驗水平、性別、性別認同和表現(xiàn)、性取向、殘疾、個人外貌、體型、種族、種族、年齡、宗教或國籍。

參與者不良行為包括:

  • 性化的語言或意象的使用
  • 個人人身攻擊
  • 惡意破壞或侮辱/侮辱性的評論
  • 公共或者私人的騷擾
  • 未經(jīng)明確許可,發(fā)布他人的私人信息,如住址或電子地址
  • 其他不道德或不專業(yè)的行為。

項目維護人員有權(quán)利和責(zé)任刪除、編輯或拒絕評論、提交、代碼、wiki編輯、問題和其他與行為準則不一致的貢獻。通過采用這一行為準則,項目維護者承諾在管理這個項目的每個方面都公平、一致地應(yīng)用這些原則。不遵守或執(zhí)行行為準則的項目維護者可能被永久地從項目團隊中刪除。

當(dāng)個人代表項目或社區(qū)時,此行為準則適用于項目空間和公共空間。

可以通過創(chuàng)建一個問題或聯(lián)系一個或多個項目負責(zé)人來舉報虐待、騷擾或其他不可接受行為。

以上就是Python入門學(xué)習(xí)Python流處理過程的詳細內(nèi)容,更多關(guān)于Python入門的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python3 實現(xiàn)爬取網(wǎng)站下所有URL方式

    Python3 實現(xiàn)爬取網(wǎng)站下所有URL方式

    今天小編就為大家分享一篇Python3 實現(xiàn)爬取網(wǎng)站下所有URL方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python之plt.hist函數(shù)的輸入?yún)?shù)和返回值的用法解釋

    python之plt.hist函數(shù)的輸入?yún)?shù)和返回值的用法解釋

    這篇文章主要介紹了python之plt.hist函數(shù)的輸入?yún)?shù)和返回值的用法解釋,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Python3創(chuàng)建Django項目的幾種方法(3種)

    Python3創(chuàng)建Django項目的幾種方法(3種)

    這篇文章主要介紹了Python3創(chuàng)建Django項目的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python實現(xiàn)在tkinter中使用matplotlib繪制圖形的方法示例

    Python實現(xiàn)在tkinter中使用matplotlib繪制圖形的方法示例

    這篇文章主要介紹了Python實現(xiàn)在tkinter中使用matplotlib繪制圖形的方法,結(jié)合實例形式分析了Python使用tkinter與matplotlib進行正弦曲線圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • pytest通過assert進行斷言的實現(xiàn)

    pytest通過assert進行斷言的實現(xiàn)

    assert斷言是一種用于檢查代碼是否按預(yù)期工作的方法,在pytest中,assert斷言可以用于測試代碼的正確性,以確保代碼在運行時按照預(yù)期工作,本文就來介紹一下如何使用,感興趣的可以了解下
    2023-12-12
  • python字符串排序方法

    python字符串排序方法

    這篇文章主要介紹了python字符串排序方法,基于lambda實現(xiàn),是非常實用的技巧,需要的朋友可以參考下
    2014-08-08
  • TensorFlow dataset.shuffle、batch、repeat的使用詳解

    TensorFlow dataset.shuffle、batch、repeat的使用詳解

    今天小編就為大家分享一篇TensorFlow dataset.shuffle、batch、repeat的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 用Python的Django框架完成視頻處理任務(wù)的教程

    用Python的Django框架完成視頻處理任務(wù)的教程

    這篇文章主要介紹了用Python的Django框架完成視頻處理任務(wù)的教程,包括用戶的視頻上傳和播放以及下載功能的實現(xiàn),需要的朋友可以參考下
    2015-04-04
  • Python爬蟲爬取煎蛋網(wǎng)圖片代碼實例

    Python爬蟲爬取煎蛋網(wǎng)圖片代碼實例

    這篇文章主要介紹了Python爬蟲爬取煎蛋網(wǎng)圖片代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python+flask實現(xiàn)API的方法

    python+flask實現(xiàn)API的方法

    這篇文章主要為大家詳細介紹了python+flask實現(xiàn)API的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評論

称多县| 东平县| 玉环县| 普兰店市| 湛江市| 琼结县| 临夏市| 金山区| 象州县| 台江县| 乃东县| 包头市| 祁阳县| 阿克陶县| 苍山县| 绥宁县| 土默特右旗| 嘉黎县| 沂水县| 漠河县| 通州市| 杭锦后旗| 达尔| 松江区| 濮阳县| 临湘市| 来宾市| 晋城| 伊吾县| 绿春县| 莱西市| 河北省| 苍溪县| 长沙县| 磐石市| 永靖县| 靖江市| 修文县| 晋江市| 襄樊市| 亚东县|