【问题标题】:ParquetWriter outputs empty parquet file in a java stand alone programParquetWriter 在 java 独立程序中输出空的 parquet 文件
【发布时间】:2016-06-20 01:44:49
【问题描述】:

我尝试将现有的 avro 文件转换为镶木地板。但是输出拼花文件是空的。我不确定我做错了什么......

我的代码sn-p:

    FileReader<GenericRecord> fileReader = DataFileReader.openReader(
            new File("output/users.avro"), new GenericDatumReader<GenericRecord>());

    Schema avroSchema = fileReader.getSchema();

    // generate the corresponding Parquet schema
    MessageType parquetSchema = new AvroSchemaConverter().convert(avroSchema);

    // choose compression scheme
    CompressionCodecName compressionCodecName = CompressionCodecName.UNCOMPRESSED;

    // set Parquet file block size and page size values
    int pageSize = 64 * 1024;

    Path outputPath = new Path("output/users.parquet");

    // create a parquet writer using builder
    ParquetWriter parquetWriter = (ParquetWriter) AvroParquetWriter.builder(outputPath)
            .withSchema(avroSchema)
            .withCompressionCodec(compressionCodecName)
            .withPageSize(pageSize)
            .build();

    // read avro, write parquet
    while (fileReader.hasNext()) {
        GenericRecord record = fileReader.next();

        System.out.println(record);

        parquetWriter.write(record);
    }

【问题讨论】:

    标签: hadoop avro parquet


    【解决方案1】:

    我遇到了同样的问题,发现需要在数据提交到文件之前关闭 parquetWriter。它只需要你添加

    parquetWriter.close();
    

    在while循环之后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2013-12-20
      • 2016-06-30
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2017-04-09
      相关资源
      最近更新 更多