【问题标题】:Write parquet file with Snappy compression in Apache Beam在 Apache Beam 中使用 Snappy 压缩编写 parquet 文件
【发布时间】:2018-11-29 16:28:55
【问题描述】:

我正在尝试使用 Snappy 压缩在 Apache Beam 中编写如下镶木地板文件

records.apply(FileIO.<GenericRecord>write().via(ParquetIO.sink(schema)).to(options.getOutput()));

我看到可以将 AUTO,GZIP,BZIP2,ZIPDEFLATE 设置为压缩,但我无法找到将其设置为 SNAPPY 的方法,任何想法如何去做这个?作为参考,可以使用 wrting 到 avro 如下

records.apply("writeAvro", AvroIO.writeGenericRecords(schema).withCodec(CodecFactory.snappyCodec()).to(options.getOutput()));

【问题讨论】:

    标签: parquet apache-beam snappy


    【解决方案1】:

    好消息!在您提出问题后不久,withCompressionCodec(...) 编解码器是 added 到 ParquetIO 接收器。这在 Apache Beam 2.11.0 上可用。

    您可能一直在查看允许您使用withCompression(Compression) 的 FileIO.Write 抽象类,它采用不包括 SNAPPY 的枚举。如果使用它,它将以指定的压缩类型压缩 整个 文件,这对于 Parquet 来说是不合适的。上面的方法指定了如何在文件内部压缩行组。

    幸运的是,ParquetIO 可以防止您犯此错误。只公开正确的压缩配置方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2016-08-20
      相关资源
      最近更新 更多