【问题标题】:Read Parquet file using Apache Beam Java SDK without providing schema在不提供架构的情况下使用 Apache Beam Java SDK 读取 Parquet 文件
【发布时间】:2019-11-25 12:07:30
【问题描述】:

看来org.apache.beam.sdk.io.parquet.ParquetIO.readFiles方法需要传入一个schema。

  • 有没有办法避免传入架构?
  • Parquet 文件中没有包含架构吗?
  • 如果我尝试读取具有不同架构的多个 Parquet 文件怎么办?

【问题讨论】:

    标签: java apache-beam apache-beam-io


    【解决方案1】:

    请内嵌我的回复

    • 有没有办法避免传入架构? 目前没有机制可以避免传递 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));
    

    【讨论】:

    • 最好读取文件模式和模式对以读取具有不同模式的多个拼花文件,以避免读取每个模式的所有文件。
    猜你喜欢
    • 2020-01-02
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2020-09-14
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多