gpt4 book ai didi

java - TextIO.将 GCS 文件夹读入管道,以过去 30 天的日期作为名称

转载 作者:行者123 更新时间:2023-12-02 12:16:09 26 4
gpt4 key购买 nike

我想将过去 30 天的滚动窗口读入我的管道中,例如2017 年 1 月 15 日,我想读:

> gs://bucket/20170115/* 
> gs://bucket/20170114/*
>.
>.
>.
> gs://bucket/20161216/*

This表示支持 ("*"、"?"、"[..]") 全局模式

Similar question, but with no good example

我试图避免执行 30 个 Text.IO.Read 步骤,然后将所有 Pcollections 扁平化为一个,这会导致管道中出现热分片。

最佳答案

从 GCS 读取文件时,TextIO 支持与 GCS 相同的通配符模式,如下所述:Wildcard Names .

question you linked的答案中,项目符号 #2 建议形成少量的球体来代表您的整个范围:

for example the two character range "23 through 67" is 2[3-] plus [3-5][0-9] plus 6[0-7]

<小时/>

TextIO 还有一个新的 API readAll()它允许您将输入文件动态指定为数据。这允许您传入所需的确切文件名集:

private static List<String> generate30DayFileGlobs(DateTime now) {
// ..
}

public static void main() {
Pipeline p = // ..

p.apply(Create.<String>of(generate30DayFileGlobs(DateTime.now())));
.apply(TextIO.readAll());

// ..
}

新的 TextIO.readAll() API 尚未发布,但您可以通过指定 Beam 工件版本 2.2.0-SNAPSHOT 从 master 进行构建。 2.2.0版本is in progress应该会在 9 月份的某个时候推出。

关于java - TextIO.将 GCS 文件夹读入管道,以过去 30 天的日期作为名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com