1

我是 apache crunch 的新手,正在寻找在 apache crunch 中读写 Parquet 文件。我遵循了文档和 API,但没有得到直接的方法/方法来做同样的事情。

PCollection<String> pipeLine = MemPipeline.collectionOf("Pineapple", "Banana", "Orange");

PCollection<Integer> b = pipeLine.parallelDo(new DoFn<String, Integer>() {

   private static final long serialVersionUID = 1L;

   @Override
   public void process(String input, Emitter<Integer> emitter) {
        emitter.emit(input.length());
    }
  }, ints());

  b.write(new AvroParquetFileTarget("D:\\Tutorials\\CCP_WorkSpace\\Crunch\\resources\\output"));

提前致谢。

4

1 回答 1

1

如果您有一个 avro 模式和一个从该 avro 编译的类,其中包含与您的 parquet 数据相同的结构,您可以通过以下方式读取它

AvroParquetFileSource<MyClassCompiled> avroParquetFileSource = 
new AvroParquetFileSource<MyClassCompiled>(
                    new Path(input), Avros.records(MyClassCompiled.class)
);

像这样写镶木地板

Target parquetFileTarget = new AvroParquetFileTarget(outputPath);
mypcollection.write(avroParquetFileSource);
于 2017-05-12T18:02:19.650 回答