如何获取从数据流中的GCS读取时正在处理的文件名



在使用以下命令从GCS读取时,是否有任何方法可以获取正在处理的文件名:

p.apply("Read from GCS", TextIO.read((.from("gs://path/*"((.

我需要下一个 ParDo 中的文件名,以便将输出存储到适当的表中。

这个问题类似于在Google-Cloud-Dataflow中使用文件模式匹配时如何获取文件名,但上次更新是在一年多前,所以想知道是否有新功能可以实现这一点。

你不能

TextIO本身做到这一点,但 Beam 2.2 包括转换,允许您在读取文件时执行几乎任何您想要的自定义操作,使用 FileIO.match()FileIO.readMatches() 。看到这个答案.您需要使用一个使用常规 Java 工具解析文本文件的DoFn<ReadableFile, String>(如该答案所示(,并使用ReadableFilegetMetadata()来获取文件名。

最新更新