回答
您应该能够通过使用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计算小数?