ライブラリ( 、org.apache.avro.Schemaおよびorg.apache.parquet.hadoop)を使用して寄木細工ファイルを作成するJava(1.8)ベースのアプリケーションを使用しています。 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クラス)Javaのint型に "mydate"をマッピングしています。
質問1私はここで寄木細工のファイルを取得していますが、sparkでそのファイルを開いた後、 "mydate"の列がint型として表示されます。
私は寄木細工のスキーマ内の日付列として、この「MyDateに該当する」ようにする方法を教えてください。
たとえば、mydate date(nullable true)