当前位置: 首页 > 知识库问答 >
问题:

如何使用数据流在GCS上自动编辑超过10万个文件?

公西志文
2023-03-14

我在Google云存储上有超过10万个包含JSON对象的文件,我想创建一个镜像来维护文件系统结构,但从文件内容中删除一些字段。

我试图在谷歌云数据流上使用Apache Beam,但它拆分了所有文件,我不能再维护结构了。我正在使用文本IO

我的结构类似于<code>reports/YYYY/MM/DD/

如何使数据流不拆分文件并使用相同的目录和文件结构输出它们?

或者,是否有更好的系统对大量文件进行此类编辑?

共有1个答案

逄俊力
2023-03-14

您不能为此直接使用< code>TextIO,但是Beam 2.2.0将包含一个特性,可以帮助您自己编写这个管道。

如果您可以在HEAD构建Beam的快照,您已经可以使用此功能。注意:在编写此答案和Beam 2.2.0发布之间,API可能会略有变化

  • 使用<code>匹配。filepatterns()创建PCollection

请注意,Match是一个非常简单的PTransform(在引擎盖下使用FileSystems),您可以在项目中使用它的另一种方式是将其代码复制粘贴(必要部分)到您的项目中,或者研究其代码并重新实现类似的东西。这可以是一个选项,以防您犹豫是否要更新Beam SDK版本。

 类似资料:
  • 我在Google Dataflow上运行了一个Apache Beam管道,它从GCS读取GZIP压缩的JSON数据,转换它们,并将它们加载到Google BigQuery中。管道在样本批数据上的工作与预期的一样,但是当我试图在整个数据上运行它时(~2.4百万个文件),它有时会引发一个令人困惑的错误,在几次出现后就会破坏进程。 错误是: 我知道错误涉及的阶段是: 其中是管道对象,是形式的glob。

  • 今天,这是一个演示,用于显示来自CSV的数据,而无需在JavaFX 2.0中的tableView上创建自定义类。我称这个TableView为动态TableView,因为表视图自动管理列和行。 在我对tableView的可编辑性的研究中,我们必须有一个自定义类,并将其实现到tableView以显示为这个演示== 但在这种情况下,我不能这样做,因为我们不知道有多少列的例子与csv文件或。dat文件。。

  • 这参考了阿帕奇光束 SDK 版本 2.2.0。 我正在尝试使用<code>AfterPane.elementCountAtLeast(…) 使用 GCP 数据流 2.0 PubSub 到 GCS 作为参考,以下是我尝试过的方法: 其中< code>stringMessages是从Avro编码的发布订阅中读取的PCollection。上游发生了一些解包,将事件转换成字符串,但没有合并/划分/分组,只

  • 我想使用数据砖自动加载器设置S3流。我已经设法设置了流,但我的S3存储桶包含不同类型的JSON文件。我想过滤掉它们,最好是在流本身中,而不是使用操作。 根据文档,我应该能够使用全局模式进行过滤。但是,我似乎无法让它工作,因为它无论如何都会加载所有内容。 这是我有的 我的文件有一个结构为

  • 需要使用到内存进行排序,但是短时间内排序又会导致内存益处

  • 在Ubuntu机器上,我尝试自动上传文件,但在使用selenium的Chrome无法做到这一点。我尝试了Robot类和普通发送键方法。 请参考我的代码: StringSelection=new StringSelection(“/home/manojnn/Desktop/OrderDetails.xlsx”);工具箱。getDefaultToolkit()。getSystemClipboard()