[英]How to read files as byte[] in Apache Beam?
我們目前正在研究Cloud Dataflow上的Apache Beam Pipeline概念驗證。 我們將一些文件(無文本;自定義二進制格式)放入Google Cloud Buckets,並希望將這些文件讀取為byte []並在流中反序列化它們。 但是,我們找不到能夠讀取非文本文件的Beam源。 唯一的想法是擴展FileBasedSource
類,但是我們認為應該有一個更簡單的解決方案,因為這聽起來很簡單。
謝謝大家幫助。
這實際上是一個普遍有用的功能,目前在拉取請求中正在審核中#3717
我一般都會回答,只是為了傳播信息。
FileBasedSource
, FileBasedSource
和Beam的源抽象的主要目的是提供文件集合的靈活拆分,將其視為一個巨大的數據集,每行一條記錄。
如果每個文件只有一條記錄,則可以讀取ParDo(DoFn)
的文件,從文件名到byte[]
。 由於任何PCollection支持在元素之間進行拆分,因此您將已經獲得拆分的最大好處。
由於數據流如何優化,你可能需要一個Reshuffle
的'帕爾多之前變換。 這將確保讀取所有文件的並行性與任何上游轉換的並行性分離,從而將其名稱注入PCollection。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.