【问题标题】:Writing Parquet file in Apache Crunch在 Apache Crunch 中编写 Parquet 文件
【发布时间】:2017-03-01 07:06:17
【问题描述】:

我是 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"));

提前致谢。

【问题讨论】:

  • 您能否使用您尝试过的方法和您遵循的文档链接来编辑您的问题。另外,粘贴不起作用的代码。 :)
  • PCollection&lt;String&gt; pipeLine = MemPipeline.collectionOf("Pineapple", "Banana", "Orange"); PCollection&lt;Integer&gt; b = pipeLine.parallelDo(new DoFn&lt;String, Integer&gt;() { private static final long serialVersionUID = 1L; @Override public void process(String input, Emitter&lt;Integer&gt; emitter) { emitter.emit(input.length()); } }, ints()); b.write(new AvroParquetFileTarget("D:\\Tutorials\\WorkSpace\\Crunch\\resources\\output")); }
  • 感谢@SagarKulkarni 的回复,上面是正在尝试的代码。
  • 请使用带有适当缩进的代码编辑您的问题。 :)
  • @SagarKulkarni 我已经在问题框中添加了代码 sn-p,对造成的不便表示抱歉:)

标签: mapreduce hadoop2 parquet apache-crunch


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2022-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2018-11-28
    相关资源
    最近更新 更多