如何在Google Dataflow流模板中使用正则表达式?

问题描述

使用Dataflow流传输模板,即Cloud Storage Text to BigQuery(Stream)模板,过去可以将“ inputFilePattern”(即:您要处理的文本的Cloud Storage位置)描述为正则表达式。例如,您可以输入gs:// my-bucket / my-files / file-to-upload *作为参数,然后以“ file-to-upload”开头的所有文件将被流式传输。

不幸的是,现在它抛出此错误消息:“找不到对象。”

还有另一种方法可以从Google存储位置上传所有文件,其命名约定与BigQuery类似吗?

请查看以下屏幕截图:

Job Parameters

Bucket data location

谢谢。

解决方法

这看起来像UI中的错误,您可以通过命令行提交作业时通过文件模式进行传递。源代码将文件模式作为输入,因此实际作业应该没有任何问题

    PCollectionTuple transformedOutput =
        pipeline

            // 1) Read from the text source continuously.
            .apply(
                "ReadFromSource",TextIO.read()
                    .from(options.getInputFilePattern())
                    .watchForNewFiles(DEFAULT_POLL_INTERVAL,Growth.never()))