Пример чтения и записи файла паркета с использованием ParquetIO через Apache Beam - PullRequest
0 голосов
/ 04 июля 2018

Кто-нибудь пробовал читать / записывать файл Parquet, используя Apache Beam. Поддержка добавлена ​​недавно в версии 2.5.0, поэтому документации немного.

Я пытаюсь прочитать входной файл json и хотел бы записать в формате паркет.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Добавьте следующую зависимость как 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"));
0 голосов
/ 05 июля 2018

Вам нужно будет использовать ParquetIO.Sink . Он реализует FileIO.

...