内容简介:编辑 pom.xml 文件,添加依赖:Parquet 是结构化的文件结构,需要先定义 Schema。以定义Schema 支持的类型,定义在枚举
依赖
编辑 pom.xml 文件,添加依赖:
<dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-avro</artifactId> <version>1.10.1</version> </dependency>
写入
Schema
Parquet 是结构化的文件结构,需要先定义 Schema。以定义 id long, name string
结构的 Schema 为例:
List<Schema.Field> fields = new ArrayList<>(2);
fields.add(new Schema.Field("id", Schema.create(Schema.Type.LONG), "id", null));
fields.add(new Schema.Field("name", Schema.create(Schema.Type.STRING), "name", null));
Schema schema = Schema.createRecord(fields);
Schema 支持的类型,定义在枚举 org.apache.avro.Schema.Type
中:
public enum Type {
RECORD, ENUM, ARRAY, MAP, UNION, FIXED, STRING, BYTES,
INT, LONG, FLOAT, DOUBLE, BOOLEAN, NULL;
private String name;
private Type() { this.name = this.name().toLowerCase(Locale.ENGLISH); }
public String getName() { return name; }
}
其中, RECORD
、 ENUM
、 ARRAY
、 MAP
、 UNION
和 FIXED
是复合类型, STRING
、 BYTES
、 INT
、 LONG
、 FLOAT
、 BOOLEAN
和 NULL
是基本类型。
Writer
有了 Schema 之后,就可以写入文件了:
ParquetWriter<GenericData.Record> writer = AvroParquetWriter.<GenericData.Record>builder(path)
.withSchema(schema)
.build();
GenericData.Record record = new GenericData.Record(schema);
record.put(0, 0);
record.put(1, "this is a test.");
writer.write(record);
writer.close();
读取
ParquetReader<GenericData.Record> reader = AvroParquetReader.<GenericData.Record>builder(path).build(); GenericData.Record record = reader.read(); reader.close();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 一文读懂监督学习、无监督学习、半监督学习、强化学习这四种深度学习方式
- 学习:人工智能-机器学习-深度学习概念的区别
- 统计学习,机器学习与深度学习概念的关联与区别
- 混合学习环境下基于学习行为数据的学习预警系统设计与实现
- 学习如何学习
- 深度学习的学习历程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
国际游戏设计全教程
[美]迈克尔·萨蒙德 / 张然、赵嫣 / 中国青年出版社 / 2017-2 / 108.00元
你想成为一名电子游戏设计师吗?想知道《肯塔基0号路》《到家》《枪口》等独立游戏的制作理念及过程吗?想了解《戈莫布偶大冒险》《辐射3》《战争机器》中关卡设计的奥秘吗?本书用通俗易懂的文字介绍了在游戏开发与策划过程中,需要掌握的游戏设计原理和制作的基础知识,可以作为读者从“构思一个电子游戏”到“真正完成一个电子游戏”的完备指南。 本书以系统的游戏设计流程结合大量优秀的游戏设计案例进行讲解,让读者......一起来看看 《国际游戏设计全教程》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
html转js在线工具
html转js在线工具