CCC*_*CCC 3 glob google-cloud-storage google-cloud-dataflow apache-beam
我尝试使用以下内容
TextIO.Read.from("gs://xyz.abc/xxx_{2017-06-06,2017-06-06}.csv")
Run Code Online (Sandbox Code Playgroud)
我得到的那种模式不起作用
java.lang.IllegalStateException: Unable to find any files matching StaticValueProvider{value=gs://xyz.abc/xxx_{2017-06-06,2017-06-06}.csv}
Run Code Online (Sandbox Code Playgroud)
即使这两个文件确实存在.我尝试使用类似表达式的本地文件
TextIO.Read.from("somefolder/xxx_{2017-06-06,2017-06-06}.csv")
Run Code Online (Sandbox Code Playgroud)
这确实很好用.
我原以为GCS中的文件会有各种各样的支持,但不是.这是为什么?在那里完成我正在寻找的东西?
这可能是另一种选择,除了斯科特的建议和你对他答案的评论:
您可以使用要读取的路径定义列表,然后对其进行迭代,以通常的方式创建多个PCollections:
PCollection<String> events1 = p.apply(TextIO.Read.from(path1));
PCollection<String> events2 = p.apply(TextIO.Read.from(path2));
Run Code Online (Sandbox Code Playgroud)
然后创建一个PCollectionList:
PCollectionList<String> eventsList = PCollectionList.of(events1).and(events2);
Run Code Online (Sandbox Code Playgroud)
然后将此列表展平到您的主要输入的PCollection中:
PCollection<String> events = eventsList.apply(Flatten.pCollections());
| 归档时间: |
|
| 查看次数: |
3309 次 |
| 最近记录: |