ris*_*097 4 java google-cloud-dataflow apache-beam
我需要从GCS存储桶中读取文件.我知道我将不得不使用GCS API /客户端库,但我找不到任何与之相关的示例.
我一直在参考GCS文档中的这个链接: GCS客户端库.但真的不能成功.如果有人能提供一个真正有用的例子.谢谢.
好.如果您只想从GCS读取文件,而不是作为PCollection而是作为常规文件,并且如果您在使用GCS Java客户端库时遇到问题,您还可以使用Apache Beam FileSystems API:
首先,你需要确保你在你的Maven的依赖pom.xml
于beam-sdks-java-extensions-google-cloud-platform-core
它包含执行的gs://
文件系统:
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-extensions-google-cloud-platform-core</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后设置FileSystems API(默认情况下,它在所有管道中设置,但如果您在管道外使用它,则需要手动执行).
PipelineOptions options = PipelineOptionsFactory.create();
// ...Optionally fill in options such as GCP credentials...
// (see GcpOptions class)
FileSystems.setDefaultPipelineOptions(options);
Run Code Online (Sandbox Code Playgroud)
然后你可以使用它:
ReadableByteChannel chan = FileSystems.open(FileSystems.matchNewResource(
"gs://path/to/your/file", false /* is_directory */));
try (InputStream stream = Channels.newInputStream(chan)) {
// Use regular Java utilities to work with the input stream.
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3257 次 |
最近记录: |