我有一个无法解决的频繁使用案例。
假设我有一个像gs://mybucket/mydata/*/files.json
这样的文件模式,其中*应该与日期匹配。
想象一下我想保留251个日期(这是一个例子,比方说,很多日期但没有像2019 *那样匹配它们的元模式)。 现在,我有两个选择:
就我而言,我想做类似的事情(伪代码):
Read(LIST[uri1,uri2,...,uri251])
该指令实际上在图形上产生了一个TextIO任务。 很抱歉,如果我错过了一些事情,但是找不到解决方法。
谢谢
答案 0 :(得分:1)
好吧,我找到了,命名在误导我:
Example 2: reading a PCollection of filenames.
Pipeline p = ...;
// E.g. the filenames might be computed from other data in the pipeline, or
// read from a data source.
PCollection<String> filenames = ...;
// Read all files in the collection.
PCollection<String> lines =
filenames
.apply(FileIO.matchAll())
.apply(FileIO.readMatches())
.apply(TextIO.readFiles());
(引自Apache Beam文档https://beam.apache.org/releases/javadoc/2.13.0/org/apache/beam/sdk/io/TextIO.html)
因此,我们需要生成URIS的PCollection(带有Create/of
)或从管道中读取它,然后匹配所有uri(或我猜想的模式)并读取所有文件。