gpt4 book ai didi

hadoop - ParquetWriter 在 java 独立程序中输出空的 parquet 文件

转载 作者:可可西里 更新时间:2023-11-01 15:11:18 25 4
gpt4 key购买 nike

我试图将现有的 avro 文件转换为 parquet。但是输出的 Parquet 文件是空的。我不确定我做错了什么......

我的代码片段:

    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);
}

最佳答案

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

parquetWriter.close();

在 while 循环之后。

关于hadoop - ParquetWriter 在 java 独立程序中输出空的 parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com