色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

avro json格式

黃文隆2年前9瀏覽0評論

Avro是一種二進制序列化格式,它已在Hadoop和其他分布式系統中廣泛使用。AVRO也提供了json格式的支持,本文將介紹JSON格式的AVRO使用方法。

{
"namespace": "com.avro.example",
"type": "record",
"name": "Person",
"fields": [
{"name": "firstName", "type": "string"},
{"name": "lastName", "type": "string"},
{"name": "age", "type": "int"}
]
}

上面的示例是一個AVRO JSON Schema。在此示例中,“namespace”指定命名空間,“type”指定記錄類型,“name”指定記錄名稱。此處包含了三個字段:“firstName”,“lastName”和“age”。每個字段都具有自己的名稱和數據類型。基本數據類型包括int,long,float,double,boolean和string。可以使用Avro JSON序列化/反序列化對象。

{"firstName": "John", "lastName": "Doe", "age": 22}

上面的示例是一個JSON對象,它將被序列化為AVRO RECORD對象。按照AVRO JSON SCHEMA的定義,此JSON對象具有三個字段:“firstName”,“lastName”和“age”。這些字段的順序要與SCHEMA中定義的字段的順序相同。

使用Java API讀取AVRO JSON數據:

Schema schema = new Schema.Parser().parse(new File("person.avro.json"));
DatumReaderdatumReader = new GenericDatumReader(schema);
FileInputStream inputStream = new FileInputStream(new File("person.json"));
DataFileStreamdataFileReader = new DataFileStream(inputStream, datumReader);
GenericRecord record = null;
while (dataFileReader.hasNext()) {
record = dataFileReader.next(record);
System.out.println(record);
}
inputStream.close();

上面的示例使用JAVA API讀取AVRO JSON數據。在此示例中,“Schema.Parser()”用來解析AVRO JSON SCHEMA文件,我們使用“GenericDatumReader”來創建對象,使用“DataFileStream”類讀取JSON存儲文件。由于數據并不是一次性全部加載,而是通過迭代獲取記錄,因此我們使用GENERICALRECORD對象來表示記錄。

使用Java API寫入AVRO JSON數據:

Schema schema = new Schema.Parser().parse(new File("person.avro.json"));
GenericRecord person = new GenericData.Record(schema);
person.put("firstName", "John");
person.put("lastName", "Doe");
person.put("age", 22);
DataFileWriterdataFileWriter = new DataFileWriter(new GenericDatumWriter(schema));
dataFileWriter.create(schema, new File("person.json"));
dataFileWriter.append(person);
dataFileWriter.close();

上面的示例使用JAVA API將數據寫入AVRO JSON文件。在此示例中,我們使用“GenericData.Record”類創建記錄。然后,我們使用“DataFileWriter”類將數據存儲到指定AVRO JSON文件。