使用ParquetIO通过Apache Beam读取和编写镶木地板文件的示例

问题描述 投票:3回答:2

有没有人尝试使用Apache Beam读/写Parquet文件。最近在版本2.5.0中添加了支持,因此没有太多文档。

我正在尝试阅读json输入文件,并希望写入镶木地板格式。

提前致谢。

google-cloud-dataflow parquet apache-beam
2个回答
2
投票

你需要使用ParquetIO.Sink。它实现了FileIO。


1
投票

在不同模块中将以下依赖项添加为ParquetIO。

<dependency>
    <groupId>org.apache.beam</groupId>;
    <artifactId&gt;beam-sdks-java-io-parquet</artifactId>;
    <version>2.6.0</version>;
</dependency>;

//这里是读写代码....

PCollection<JsonObject> input = #Your data
PCollection<GenericRecord> pgr =input.apply("parse json", ParDo.of(new DoFn<JsonObject, GenericRecord> {
        @ProcessElement
        public void processElement(ProcessContext context) {
            JsonObject json= context.getElement();
            GenericRecord record = #convert json to GenericRecord with schema
            context.output(record);
        }
    }));
pgr.apply(FileIO.<GenericRecord>write().via(ParquetIO.sink(schema)).to("path/to/save"));

PCollection<GenericRecord> data = pipeline.apply(
            ParquetIO.read(schema).from("path/to/read"));
© www.soinside.com 2019 - 2024. All rights reserved.