google-cloud-storage - 有没有办法使用Dataflow读取Excel文件

标签 google-cloud-storage google-cloud-dataflow

有没有办法使用 Dataflow 读取存储在 GCS 存储桶中的 Excel 文件?

我还想知道我们是否可以使用 Dataflow 访问 GCS 中对象的元数据。如果是的话怎么办?

最佳答案

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

https://cloud.google.com/dataflow/model/par-do#side-inputs

关于google-cloud-storage - 有没有办法使用Dataflow读取Excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43626158/

相关文章:

java - Google App Engine 无法启动 Dataflow 作业

java - 从ObjectName获取Google云存储文件

google-app-engine - 为什么我在管理面板中同时看到 Blobstore 和数据存储查看器?

google-cloud-platform - 为 terraform 设置 gcs 后端的问题

java - 使用 DataFlow (Apache Beam) 将 ISO-8859-1 加载到 BigQuery 时出现问题

java - 无法通过更新标志更新数据流作业

node.js - 如何从云存储中获取文件并作为本地文件处理而无需下载?

google-cloud-platform - 如何为 Cloud Build 用于 Cloud Run 部署的 Cloud Storage 存储分区指定区域?

java - @OnTimer 方法在触发时接收空引用

message-queue - 可以使用数据流将 pubsub 消息重复数据删除回 pubsub 吗?