【发布时间】:2019-11-25 12:07:30
【问题描述】:
看来org.apache.beam.sdk.io.parquet.ParquetIO.readFiles方法需要传入一个schema。
- 有没有办法避免传入架构?
- Parquet 文件中没有包含架构吗?
- 如果我尝试读取具有不同架构的多个 Parquet 文件怎么办?
【问题讨论】:
标签: java apache-beam apache-beam-io
看来org.apache.beam.sdk.io.parquet.ParquetIO.readFiles方法需要传入一个schema。
【问题讨论】:
标签: java apache-beam apache-beam-io
请内嵌我的回复
有没有办法避免传入架构? 目前没有机制可以避免传递 parquet 文件的架构
Parquet 文件中没有包含架构吗? 是的,这是正确的,标头中的元数据作为文件的架构定义。请参考BEAM-8344,这是一个支持推断架构的开放功能请求
如果我试图读取具有不同架构的多个 Parquet 文件怎么办? 您可以执行以下操作,其中您可以传递文件模式和路径并指定不同的架构。
PCollection<FileIO.ReadableFile> files = pipeline
.apply(FileIO.match().filepattern(options.getInputFilepattern())
.apply(FileIO.readMatches());
PCollection<GenericRecord> output = files.apply(ParquetIO.readFiles(SCHEMA));
【讨论】: