我正在使用基於Java(1.8)的應用程序使用庫創建鑲木地板文件 org.apache.avro.Schema和org.apache.parquet.hadoop。 ParquetWriter等。如何在鑲木地板文件中創建日期類型列與鑲木地板
這是我的示例代碼
最後字符串的schemaLocation = ParquerWriterImpl.class.getClassLoader()。的getResource( 「拼花架構/」 + ParquetTypes.RISKINFO.getFileType())。的getPath() ;
Schema avroSchema = new Schema.Parser().parse(new File(schemaLocation));
final MessageType parquetSchema = new AvroSchemaConverter().convert(avroSchema);
final WriteSupport<Mapper> writeSupport = new AvroWriteSupport(parquetSchema, avroSchema);
final String parquetPath = PropertyLoader.getPropertyLoader().getProperty(Constants.PROPERTY_MACHINE_FOLDERPATH) + "/" +
parquetFileName;
final Path path = new Path(parquetPath);
ParquetWriter<GenericRecord> parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, 1024);
final GenericRecord record = new GenericData.Record(avroSchema);
parquetWriter.write(function.apply(new RiskInfoGen(record)));
parquetWriter.close();
創建此文件我正在使用像下面的Avro架構。
},
{
"name": "additional",
"type": {"type": "map", "values": "string","default" : null}
},
{
"name": "mydate",
"type": {"type": "int", "logicalType" : "date"}
}
在POJO類我將「mydate」映射到Java int類型。
問題1 儘管我在這裏得到實木複合文件,打開該文件後spark,「mydate」列顯示爲int類型不是預期的日期類型。
請讓我知道如何使這個「mydate」作爲實木複合模式中的日期列。
e.g指明MyDate日期(可空真)