<dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet-column</artifactId>
<version>1.12.0</version>
</dependency>
MessageType schema = new MessageType(
"parquet-example",
new PrimitiveType(REQUIRED, INT32, "id"),
new PrimitiveType(REQUIRED, BINARY, "name"),
new PrimitiveType(OPTIONAL, DOUBLE, "price")
);
Path filePath = new Path("data.parquet");
Configuration conf = new Configuration();
GroupWriteSupport.setSchema(schema, conf);
try (ParquetWriter<Group> writer = new ParquetWriter<>(filePath,
new GroupWriteSupport(), CompressionCodecName.SNAPPY, 1024, 1024, 512, true, false, true, false)) {
GroupWriteSupport writeSupport = new GroupWriteSupport();
writeSupport.init(conf);
writer.write(new SimpleGroupBuilder(schema)
.add("id", 1)
.add("name", "Apple")
.add("price", 2.99)
.build());
}
try (ParquetReader<Group> reader = ParquetReader.builder(new GroupReadSupport(), filePath).build()) {
Group group;
while ((group = reader.read()) != null) {
int id = group.getInteger("id", 0);
String name = group.getString("name", 0);
double price = group.getDouble("price", 0);
System.out.println("id: " + id + ", name: " + name + ", price: " + price);
}
}