TigerGraph中多行文本顶点的CSV格式及配置问询
TigerGraph处理CSV多行文本单元格方案
是否支持该需求
TigerGraph完全支持CSV文件中单个单元格包含多行文本的加载需求。
CSV文件的正确格式
要让多行文本被识别为单个单元格,必须将该单元格的内容用双引号包裹,引号内的所有内容(包括换行符、逗号等特殊字符)都会被视为一个整体。示例格式如下:
"John Smith, Aviator Supervisor, L3",employee_001,2020-01-01
如果单元格内容本身包含双引号,需要用两个连续的双引号进行转义,比如:
"She said ""I'm an aviator""",employee_002,2021-03-15
创建顶点与加载文件的配置
1. 定义顶点类型
将存储多行文本的属性设置为STRING类型即可,TigerGraph的STRING类型原生支持包含换行符的字符串内容。示例GSQL语句:
CREATE VERTEX Employee ( PRIMARY_ID emp_id STRING, profile STRING, hire_date DATETIME ) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true";
2. 编写加载作业
加载作业无需修改默认的逗号分隔符,只要确保属性映射正确即可。如果CSV包含表头,记得开启HEADER="true"并使用列名映射:
CREATE LOADING JOB load_employee_data FOR GRAPH CompanyGraph { DEFINE FILENAME emp_csv = "/data/employees.csv"; LOAD emp_csv TO VERTEX Employee VALUES (emp_id, profile, hire_date) USING SEPARATOR=",", HEADER="true"; }
如果CSV没有表头,使用列索引($0、$1、$2...)映射,同时设置HEADER="false"。
关于你之前尝试的方法说明
- 直接用逗号分隔换行的方式会被加载器识别为多个独立列,导致列数不匹配的加载错误,不可行。
- 拆分多个CSV关联顶点列的方法过于繁琐,完全没必要,使用双引号包裹多行单元格的方式是最直接高效的解决方案。
内容的提问来源于stack exchange,提问作者Spencer Neal
相关产品推荐
相关产品推荐

