java - 将集合传递给 FileIO.match().filepattern()

标签 java apache-beam dataflow

我有一个包含通配符的 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 列表

最佳答案

我相信您可以使用 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));

用 TextIO 替换 KafkaIO.read()。

关于java - 将集合传递给 FileIO.match().filepattern(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56956986/

相关文章:

Java 泛型未经检查强制转换警告 : abstract class A<T extends A>

java - Jersey 。为什么参数传不通?

ssl - 在 Dataflow 上运行的 Apache Beam 管道无法从 KafkaIO : SSL handshake failed 读取

clojure - 有人在实际项目中用主流语言使用过数据流编程吗?

java - Java Hadoop Mapper 如何发送多个值

java - OC4J 服务器中出现差异 - Spring-framework 3.0.1.RELEASE jar 和 commons-logging-1.1.1.jar

google-cloud-dataflow - 光束.BigQueryIO : What is numFileShards for?

java - 写入 Avro 文件时架构更新

algorithm - 恒定时间的伪多项式

python - 尝试在 Dataflow 中使用 Apache Beam 将数据从 Google PubSub 写入 GCS 时出现错误