From fd8d5a423b40f4686038db8e669730fdbe737561 Mon Sep 17 00:00:00 2001 From: jerolba Date: Thu, 10 Sep 2026 19:04:49 +0000 Subject: [PATCH 1/4] Add file read/write test --- ...arquetReadOptionsWithoutMapReduceTest.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java index 2c846ddba7..af35acba19 100644 --- a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java +++ b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java @@ -18,10 +18,27 @@ */ package org.apache.parquet.hadoop; +import static org.apache.parquet.schema.Types.primitive; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.apache.hadoop.conf.Configuration; +import org.apache.parquet.example.data.Group; +import org.apache.parquet.example.data.simple.SimpleGroupFactory; +import org.apache.parquet.hadoop.ParquetReader; +import org.apache.parquet.hadoop.ParquetWriter; +import org.apache.parquet.hadoop.api.ReadSupport; +import org.apache.parquet.hadoop.example.ExampleParquetWriter; +import org.apache.parquet.hadoop.example.GroupReadSupport; +import org.apache.parquet.hadoop.example.GroupWriteSupport; +import org.apache.parquet.io.LocalInputFile; +import org.apache.parquet.io.LocalOutputFile; import org.apache.parquet.ParquetReadOptions; +import org.apache.parquet.schema.MessageType; +import org.apache.parquet.schema.PrimitiveType; +import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName; +import org.apache.parquet.schema.Type.Repetition; import org.junit.jupiter.api.Test; class ParquetReadOptionsWithoutMapReduceTest { @@ -33,4 +50,42 @@ void buildsReadOptionsWithoutMapReduce() { assertThatCode(() -> ParquetReadOptions.builder().build()).doesNotThrowAnyException(); } + + @Test + void canWriteAndReadFiles() throws IOException { + Path path = Files.createTempFile("sample", ".parquet"); + Configuration conf = new Configuration(); + + PrimitiveType id = primitive(PrimitiveTypeName.INT32, Repetition.OPTIONAL).named("id"); + MessageType schema = new MessageType("schema", id); + GroupWriteSupport.setSchema(schema, conf); + + SimpleGroupFactory f = new SimpleGroupFactory(schema); + LocalOutputFile localOutputFile = new LocalOutputFile(path); + try (ParquetWriter writer = ExampleParquetWriter.builder(localOutputFile).withConf(conf).build()) { + writer.write(f.newGroup().append("id", 1)); + writer.write(f.newGroup().append("id", 2)); + } + + LocalInputFile readFile = new LocalInputFile(path); + try (ParquetReader reader = new GroupReaderBuilder().withFile(readFile).build()) { + Group group1 = reader.read(); + assertEquals(1, group1.getInteger("id", 0)); + Group group2 = reader.read(); + assertEquals(2, group2.getInteger("id", 0)); + } + } + + public static class GroupReaderBuilder extends ParquetReader.Builder { + + public GroupReaderBuilder() { + super(); + } + + @Override + public ReadSupport getReadSupport() { + return new GroupReadSupport(); + } + + } } From 6f204b3e79eb51cd26da5eee282a003558cc4f47 Mon Sep 17 00:00:00 2001 From: jerolba Date: Fri, 11 Sep 2026 17:58:19 +0000 Subject: [PATCH 2/4] Add missing imports --- .../hadoop/ParquetReadOptionsWithoutMapReduceTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java index af35acba19..cc10c14fae 100644 --- a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java +++ b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java @@ -23,6 +23,10 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + import org.apache.hadoop.conf.Configuration; import org.apache.parquet.example.data.Group; import org.apache.parquet.example.data.simple.SimpleGroupFactory; @@ -53,7 +57,7 @@ void buildsReadOptionsWithoutMapReduce() { @Test void canWriteAndReadFiles() throws IOException { - Path path = Files.createTempFile("sample", ".parquet"); + Path path = Files.createTempDirectory("sample").resolve(java.util.UUID.randomUUID() + ".parquet"); Configuration conf = new Configuration(); PrimitiveType id = primitive(PrimitiveTypeName.INT32, Repetition.OPTIONAL).named("id"); From 1a1cbfe20e90e9d39912c802eb601eb32e24adf6 Mon Sep 17 00:00:00 2001 From: jerolba Date: Fri, 11 Sep 2026 18:12:52 +0000 Subject: [PATCH 3/4] Fix spotless issues --- ...arquetReadOptionsWithoutMapReduceTest.java | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java index cc10c14fae..61e939ae0d 100644 --- a/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java +++ b/parquet-hadoop-no-mapreduce-test/src/test/java/org/apache/parquet/hadoop/ParquetReadOptionsWithoutMapReduceTest.java @@ -26,19 +26,16 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; - import org.apache.hadoop.conf.Configuration; +import org.apache.parquet.ParquetReadOptions; import org.apache.parquet.example.data.Group; import org.apache.parquet.example.data.simple.SimpleGroupFactory; -import org.apache.parquet.hadoop.ParquetReader; -import org.apache.parquet.hadoop.ParquetWriter; import org.apache.parquet.hadoop.api.ReadSupport; import org.apache.parquet.hadoop.example.ExampleParquetWriter; import org.apache.parquet.hadoop.example.GroupReadSupport; import org.apache.parquet.hadoop.example.GroupWriteSupport; import org.apache.parquet.io.LocalInputFile; import org.apache.parquet.io.LocalOutputFile; -import org.apache.parquet.ParquetReadOptions; import org.apache.parquet.schema.MessageType; import org.apache.parquet.schema.PrimitiveType; import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName; @@ -54,42 +51,44 @@ void buildsReadOptionsWithoutMapReduce() { assertThatCode(() -> ParquetReadOptions.builder().build()).doesNotThrowAnyException(); } - + @Test void canWriteAndReadFiles() throws IOException { - Path path = Files.createTempDirectory("sample").resolve(java.util.UUID.randomUUID() + ".parquet"); - Configuration conf = new Configuration(); + Path path = Files.createTempDirectory("sample").resolve(java.util.UUID.randomUUID() + ".parquet"); + Configuration conf = new Configuration(); - PrimitiveType id = primitive(PrimitiveTypeName.INT32, Repetition.OPTIONAL).named("id"); - MessageType schema = new MessageType("schema", id); - GroupWriteSupport.setSchema(schema, conf); + PrimitiveType id = + primitive(PrimitiveTypeName.INT32, Repetition.OPTIONAL).named("id"); + MessageType schema = new MessageType("schema", id); + GroupWriteSupport.setSchema(schema, conf); - SimpleGroupFactory f = new SimpleGroupFactory(schema); - LocalOutputFile localOutputFile = new LocalOutputFile(path); - try (ParquetWriter writer = ExampleParquetWriter.builder(localOutputFile).withConf(conf).build()) { - writer.write(f.newGroup().append("id", 1)); - writer.write(f.newGroup().append("id", 2)); - } + SimpleGroupFactory f = new SimpleGroupFactory(schema); + LocalOutputFile localOutputFile = new LocalOutputFile(path); + try (ParquetWriter writer = + ExampleParquetWriter.builder(localOutputFile).withConf(conf).build()) { + writer.write(f.newGroup().append("id", 1)); + writer.write(f.newGroup().append("id", 2)); + } - LocalInputFile readFile = new LocalInputFile(path); - try (ParquetReader reader = new GroupReaderBuilder().withFile(readFile).build()) { - Group group1 = reader.read(); - assertEquals(1, group1.getInteger("id", 0)); - Group group2 = reader.read(); - assertEquals(2, group2.getInteger("id", 0)); - } + LocalInputFile readFile = new LocalInputFile(path); + try (ParquetReader reader = + new GroupReaderBuilder().withFile(readFile).build()) { + Group group1 = reader.read(); + assertEquals(1, group1.getInteger("id", 0)); + Group group2 = reader.read(); + assertEquals(2, group2.getInteger("id", 0)); + } } public static class GroupReaderBuilder extends ParquetReader.Builder { - public GroupReaderBuilder() { - super(); - } - - @Override - public ReadSupport getReadSupport() { - return new GroupReadSupport(); - } + public GroupReaderBuilder() { + super(); + } + @Override + public ReadSupport getReadSupport() { + return new GroupReadSupport(); + } } } From 2ec9b9bb37859479f87b9f54fd4af1c46fa80e46 Mon Sep 17 00:00:00 2001 From: jerolba Date: Fri, 11 Sep 2026 18:26:03 +0000 Subject: [PATCH 4/4] Add missing transitive dependencies --- parquet-hadoop-no-mapreduce-test/pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/parquet-hadoop-no-mapreduce-test/pom.xml b/parquet-hadoop-no-mapreduce-test/pom.xml index edee804aa5..cc46db2cd8 100644 --- a/parquet-hadoop-no-mapreduce-test/pom.xml +++ b/parquet-hadoop-no-mapreduce-test/pom.xml @@ -43,6 +43,18 @@ + + org.apache.parquet + parquet-common + ${project.version} + test + + + org.apache.parquet + parquet-column + ${project.version} + test + org.apache.parquet parquet-hadoop