【问题标题】:Pass collection to FileIO.match().filepattern()将集合传递给 FileIO.match().filepattern()
【发布时间】:2019-07-09 16:28:58
【问题描述】:

我有一个带有通配符的 URL 列表,如何将其传递给 FileIO.match().filepattern(XXXX)

这里是代码

PCollectionTuple decompressOut =
  pipeline
    .apply(TextIO.read("dict.txt"))
    .apply("MatchFile(s)", FileIO.match().filepattern())
    .apply(
      "DecompressFile(s)",
      ParDo.of(new Decompress(options.getOutputDirectory()))
           .withOutputTags(
               DECOMPRESS_MAIN_OUT_TAG,
               TupleTagList.of(DEADLETTER_TAG)));

在 dict.txt 我有我想传递给 XXX 的 URL 列表

【问题讨论】:

    标签: java apache-beam dataflow


    【解决方案1】:

    我相信您可以使用 matchAll 来读取包含文件名的 PCollection。

    来自Link to Beam Java doc 中标题为“示例:匹配来自 Kafka 的文件模式的 PCollection”部分的部分

     PCollection<String> filepatterns = p.apply(KafkaIO.read()...);
    
     PCollection<Metadata> matches = filepatterns.apply(FileIO.matchAll()
         .withEmptyMatchTreatment(DISALLOW));
    

    将 KafkaIO.read() 替换为 TextIO。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2014-11-22
      • 2020-09-22
      • 2020-06-17
      相关资源
      最近更新 更多