Gremlin(CSV)文件格式
使用 CSV 格式加载 Apache TinkerPop Gremlin 数据,必须将顶点和边分别放到单独的文件。加载程序可以在单个加载任务中加载多个顶点文件和多个边文件。
每一个加载任务的加载文件集必须位于OSS的bucket同一文件夹中,不使用文件名和文件扩展名来区分顶点文件和边文件。
Gremlin CSV格式遵循RFC 4180 CSV规范。有关更多信息,请参阅Internet Engineering Task Force (IETF)网站上的CSV文件的一般格式和MIME类型。
注意
所有文件必须采用 UTF-8 格式编码。
每个文件都包含一个逗号分隔的标题行,此标题行由系统列标题和属性列标题组成。
注意
标题行是数据文件的第一行,由
\n
或\r\n
结束,行内部不支持使用双引号、行换符等特殊字符,除分隔符逗号(,)外的其余字符均被解析为标题内容。
系统列标题
顶点文件和边文件的系统列标题不同,每个系统列在标题中只能出现一次,所有标签都是字符串类型,并且区分大小写。
顶点标题
~id
- 必需,顶点的ID。~label
,- 顶点的标签,只支持单个标签
边标题
~id
- 必需,边的ID。~from
- 必需,源顶点的顶点ID~to
- 必需,目标顶点的顶点ID~label
,- 边的标签,只支持单个标签
属性列标题
可通过以下语法指定属性列,类型名称不区分大小写。
propertyname:type
注意
- 列标题中不允许使用空格,因此,属性名称也不能包含空格。
- 属性不支持List和Set数据类型,只能有一个值。
以下示例显示了名为age
、类型为Int
的属性的列标题。
age:Int
文件中的每行都需要在该位置具有整数或保留为空。
数据类型
下面列出允许的属性值类型及描述。
Bool(或Boolean)
指示Boolean字段,允许的值:false, true, FALSE, TRUE。
整数类型
超出所定义范围的值将导致错误。
类型 | Range |
---|---|
char | -128 ~ 127 |
short | -32768 ~ 32767 |
int | -2^31 ~ 2^31 -1 |
long | -2^63 ~ 2^63 -1 |
小数类型
支持十进制记数法或科学记数法。不支持(+/-)INFINITY或NaN。
类型 | Range |
---|---|
float | 32位IEEE 754浮点 |
double | 64位IEEE 754浮点 |
字符串
双引号是可选的,字符串中如果包含逗号(,)、换行(\r\n
或\n
),双引号(“)等特殊字符,需要使用双引号(“)括起来。示例:”Hello,World”
如果用双引号括起来的字符串中包含有双引号,可根据CSV规则使用两个双引号转义。示例:”Hello “”World”””
字符串中不包含特殊字符,可以不使用双引号括起来。
注意
支持长度为零的空字符串,表示为:””,不使用双引号的空白域表示不存在,为
nullptr
。
行格式
分隔符
行中字段是用逗号分隔的,行间是用换行符(\n
)或回车换行符(\r\n
)分隔的。
空白字段
非必需列 (如用户定义的属性) 允许使用空白字段。空白字段仍需要逗号分隔符。
顶点ID
每个顶点文件中所有顶点的 ~id
值都必须是唯一的。~id
值相同的多个顶点行适用于图形中的单个顶点。
边ID
每个边文件中所有边的 ~id
值都必须是唯一的。~id
值相同的多个边行适用于图形中的单个边。
标签
标签是字符串类型,区分大小写。
字符串值
引号是可选的,当包含逗号等特殊字符时需要使用双引号(“)括起来。
示例
以下使用TinkerPop modern图形为示例,表示为图的CSV数据文件。
以下是Gremlin CSV加载格式的数据文件。
顶点文件:
~id,~label,name:string,lang:string,age:int
1,person,marko,,29
2,person,vadas,,27
3,software,lop,java,
4,person,josh,,32
5,software,ripple,java,
6,person,peter,,35
顶点文件的表格视图:
~id | ~label | name:string | lang:string | age:int |
---|---|---|---|---|
1 | person | marko | 29 | |
2 | person | vadas | 27 | |
3 | software | lop | java | |
4 | person | josh | 32 | |
5 | software | ripple | java | |
6 | person | peter | 35 |
边文件:
~id,~from,~to,~label,weight:double
7,1,2,knows,0.5
8,1,4,knows,1.0
9,1,3,created,0.4
10,4,5,created,1.0
11,4,3,created,0.4
12,6,3,created,0.2
边文件的表格视图:
~id | ~from | ~to | ~label | weight:double |
---|---|---|---|---|
7 | 1 | 2 | knows | 0.5 |
8 | 1 | 4 | knows | 1.0 |
9 | 1 | 3 | created | 0.4 |
10 | 4 | 5 | created | 1.0 |
11 | 4 | 3 | created | 0.4 |
12 | 6 | 3 | created | 0.2 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论