簡體   English   中英

如何在Apache Beam中使用Pandas?

[英]How to use Pandas in apache beam?

如何在 Apache Beam 中實現 Pandas? 我無法對多列執行左連接,並且 Pcollections 不支持 sql 查詢。 即使是 Apache Beam 文檔也沒有正確地構建。 我檢查過,但在 Apache 光束中找不到任何類型的 Panda 實現。 任何人都可以將我指向所需的鏈接嗎?

這里發生了一些混亂。

pandas是“受支持的”,從某種意義上說,您可以像在沒有 Apache Beam 的情況下使用它的方式一樣使用pandas庫,也可以像使用 Beam 管道中的任何其他庫一樣,只要您指定正確的依賴關系。 它也是“受支持”的,因為它默認捆綁為依賴項,因此您不必自己指定它。 例如,你可以寫一個DoFn執行使用一些計算pandas的每一個元素; 每個元素的單獨計算,由 Beam 在所有元素上並行執行。

不是在Apache的梁目前提供與它沒有什么特別的集成,例如,你不能使用感支持PCollection為大熊貓據幀,反之亦然。 PCollection物理上不包含任何數據(這對於流式管道應該特別清楚)——它只是 Beam 執行計划中的一個占位符節點。

這就是說,一個pandas式的API與梁工作PCollections肯定會是一個好主意,將簡化學習梁許多現有pandas的用戶,但我不認為任何人正在目前正在實施此。 但是,Beam 社區目前正在討論將模式添加到 PCollections 的想法,這是朝着這個方向邁出的一步。

除了直接從 DoFns 使用 Pandas 之外,Beam 現在還有一個 API 可以將 PCollections 作為數據幀進行操作。 有關更多詳細信息,請參閱https://s.apache.org/simple-python-pipelines-2020

適用於 Python 2.x 的 Dataflow SDK 支持pandas 在撰寫本文時,worker 已經預裝了pandas v0.18.1版本,因此您應該不會遇到任何問題。 StackOverflow 不接受您要求社區將您指向外部文檔和/或教程的答案,因此也許您應該首先自己嘗試實現,然后返回有關什么/沒有失敗以及您做了什么的更多信息在絆倒錯誤之前實現。

無論如何,如果您想要實現的是左連接,也許您還可以查看CoGroupByKey轉換類型,該類型記錄在Apache Beam 文檔 中 它用於執行具有公共鍵類型的多個PCollection的關系連接。 在同一個頁面中,您將能夠找到一些示例,它們使用CoGroupByKeyParDo來連接多個數據對象的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM