Skip to content

Commit 32a484a

Browse files
authored
MINOR: Fix display of logicalTypeAnnotation for parquet cli (#3184)
1 parent 8d6afa9 commit 32a484a

File tree

1 file changed

+27
-0
lines changed
  • parquet-cli/src/main/java/org/apache/parquet/cli/util

1 file changed

+27
-0
lines changed

parquet-cli/src/main/java/org/apache/parquet/cli/util/RawUtils.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,14 @@
2222
import static org.apache.parquet.hadoop.ParquetFileWriter.EFMAGIC;
2323
import static org.apache.parquet.hadoop.ParquetFileWriter.MAGIC;
2424

25+
import com.fasterxml.jackson.core.JsonGenerator;
2526
import com.fasterxml.jackson.core.JsonProcessingException;
27+
import com.fasterxml.jackson.databind.JsonSerializer;
2628
import com.fasterxml.jackson.databind.ObjectMapper;
2729
import com.fasterxml.jackson.databind.SerializationFeature;
30+
import com.fasterxml.jackson.databind.SerializerProvider;
31+
import com.fasterxml.jackson.databind.module.SimpleModule;
32+
import com.fasterxml.jackson.databind.module.SimpleSerializers;
2833
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
2934
import java.io.IOException;
3035
import java.io.InputStream;
@@ -34,6 +39,7 @@
3439
import org.apache.parquet.format.FileMetaData;
3540
import org.apache.parquet.format.Util;
3641
import org.apache.parquet.io.SeekableInputStream;
42+
import org.apache.parquet.schema.LogicalTypeAnnotation;
3743

3844
public class RawUtils {
3945

@@ -79,6 +85,27 @@ public static ObjectMapper createObjectMapper() {
7985
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
8086
mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
8187
mapper.registerModule(new JavaTimeModule());
88+
mapper.registerModule(new ParquetModule());
8289
return mapper;
8390
}
91+
92+
static class ParquetModule extends SimpleModule {
93+
94+
@Override
95+
public void setupModule(SetupContext context) {
96+
super.setupModule(context);
97+
SimpleSerializers sers = new SimpleSerializers();
98+
sers.addSerializer(LogicalTypeAnnotation.class, new LogicalTypeAnnotationJsonSerializer());
99+
context.addSerializers(sers);
100+
}
101+
}
102+
103+
static class LogicalTypeAnnotationJsonSerializer extends JsonSerializer<LogicalTypeAnnotation> {
104+
105+
@Override
106+
public void serialize(LogicalTypeAnnotation value, JsonGenerator gen, SerializerProvider serializers)
107+
throws IOException {
108+
gen.writeString(value.toString());
109+
}
110+
}
84111
}

0 commit comments

Comments
 (0)