回答
您應該能夠通過使用GCS API來讀取一個GCS文件的元數據。但是你需要文件名。您可以通過對包含文件名的PCollection<string>
列表執行ParDo或其他轉換來完成此操作。
我們沒有對Excel文件的任何默認的讀者。您可以通過使用文本輸入:(ETL & Parsing CSV files in Cloud Dataflow)
我不是在Excel中很懂行從CSV文件解析,文件格式的存儲方式。如果您想一次處理一個文件,則可以使用文件的PCollection<string>
。然後使用一些庫一次解析excel文件。
如果一個Excel文件可以分成易於並行化的部分,我建議你看看這個文檔(https://beam.apache.org/documentation/io/authoring-overview/)。 (如果您仍在使用Dataflow SDK,它應該是相似的。)在讀取之前,可能需要將其分解爲更小的塊,以便從管道中獲得更多並行化。在這種情況下,您可以使用IOChannelFactory從文件中讀取數據。
CSV文件通常用於從excel中讀取文件。這些文件可以分割和逐行讀取,因此它們非常適合數據流。您可以使用TextIO.Read來拉取文件的每一行,然後將它們解析爲CSV行。
如果你想使用不同的二進制excel格式,那麼我相信你需要閱讀整個文件並使用庫來解析它。如果可以,我建議使用CSV文件。
至於閱讀GCS元數據。我不認爲你可以用TextIO做到這一點,但你可以直接調用GCS API來訪問元數據。如果您只在程序開始時爲幾個文件執行此操作,那麼它將起作用,而且不會太昂貴。如果您需要閱讀這樣的許多文件,您將爲每個文件添加一個額外的RPC。
請小心不要多次讀取同一個文件,我建議每次讀取每個文件的元數據一次,然後將元數據寫入側面輸入。然後,在您的ParDo中,您可以訪問每個文件的側面輸入。
相關鏈接: ETL & Parsing CSV files in Cloud Dataflow
https://cloud.google.com/dataflow/java-sdk/JavaDoc/com/google/cloud/dataflow/sdk/io/TextIO.Read
- 1. 有沒有一種方法來讀取在java中的Internet Explorer
- 2. 有沒有一種方法來配置WCF回調節流?
- 3. Smalltalk - 有沒有一種方法來確定數據類型?
- 4. 有沒有一種方法來表示hibernate的數據視圖?
- 5. 有沒有一種有效的方法來讀取bash中的行輸入?
- 6. Python Glueviz - 有沒有一種方法來取代即更新導入的數據
- 7. 有沒有一種方法可以使用FileReader方法來讀取多個文本文件?
- 8. 有沒有一種方法來使用System.Linq.Dynamic
- 9. Elasticsearch - 有沒有一種方法來匹配使用「幾乎ident」
- 10. 有沒有一種方法使用傳單來突出道路?
- 11. 有沒有一種方法來選擇使用ENVDTE項目?
- 12. 有沒有一種方法來獲取@Embedded領域懶惰?
- 13. 有沒有一種方法來操縱包含JS沒有eval()?
- 14. 有沒有一種方法可以使用Smoke來獲取類的註釋?
- 15. 有沒有一種方法來使用自動完成沒有JQuery UI
- 16. 有沒有一種方法來單元測試異步方法?
- 17. 有沒有一種簡單易用的方法來顯示高維數據?
- 18. 有沒有一種方法來確定在Java方法中使用的變量?
- 19. iPhone:有沒有一種方法來loadNumber並有一個reuseIdentifier?
- 20. 有沒有一種方法來簡化函數簽名playframework
- 21. 有沒有一種方法來設置爲CABasicAnimation動畫步數?
- 22. Apiary:有沒有一種方法來定義參數的選項?
- 23. 有沒有一種方法來初始化整數Java中
- 24. 樹枝 - 有沒有一種方法來循環與小數?
- 25. 一種有效的方法來讀取ASCII文件
- 26. 有沒有一種簡單的方法在Node中從Mongo打開可讀流?
- 27. Joomla有沒有一種方法使用組件的數據到另一個?
- 28. 有沒有一種方法可以使用LINQ語句來計算行數?
- 29. 使用摩卡,有沒有一種方法來存留很多參數?
- 30. 有沒有一種簡單的方法來使用SpriteKit計算小數?