我正在尝试创建一个TigerGraph加载作业,以使用标题行中的列名,而不是$1、$2等位置参数。为了使用TigerGraph服务器外部的文件,我认为需要指定标题和INPUT_LINE_FILTER,并在加载作业中使用它们。但是,我无法在TigerGraph文档中找到任何示例。我下面的尝试现在起作用了。
任何帮助都是非常感谢的。
result = conn.gsql('''
USE GRAPH MyGraphCopy
BEGIN
CREATE LOADING JOB load_persons_byname FOR GRAPH MyGraphCopy {
DEFINE FILENAME MyDataSource;
DEFINE HEADER MyHeader = "id","name","email","username","created_at","v_id";
DEFINE INPUT_LINE_FILTER reject_header = ( "created_at " = "created_at");
LOAD MyDataSource TO VERTEX Person VALUES($"v_id", $"name", $"email", $"username", $"created_at") USING SEPARATOR=",", HEADER="true", USER_DEFINED_HEADER=MyHeader, REJECT_LINE_RULE=reject_header, EOL="\n", QUOTE="double";
}
END
''')发布于 2021-12-20 19:41:23
尝试删除DEFINE HEADER和DEFINE INPUT_LINE_FILTER行。如果您正在从CSV中读取,那么只需使用header="true";这应该足以获得列名的引用,而无需执行任何其他操作。
此外,请确保指定要作为MyDataSource使用的文件的名称和位置。下面是一个示例,其中文件名为file1
CREATE LOADING JOB load_social FOR GRAPH social {
DEFINE FILENAME file1="/home/tigergraph/personAndFriendship.csv";
LOAD file1 TO VERTEX person VALUES ($"name", $"name", $"age", $"gender", $"state") WHERE NOT ($"age" IS EMPTY) USING header="true", separator=",";
LOAD file1 TO EDGE friendship VALUES ($0, $1, $5) USING header="true", separator=",";
}另外,请参见正式的TG加载作业文档。
发布于 2022-02-09 21:31:18
这就是我能让它开始工作的方法。
USE GRAPH MyGraph
BEGIN
CREATE LOADING JOB load_persons_byname FOR GRAPH MyGraphCopy {
DEFINE FILENAME MyDataSource;
DEFINE HEADER MyHeader = "id","name","email","username","created_at","v_id";
DEFINE INPUT_LINE_FILTER reject_header = ( $4 == "created_at");
LOAD MyDataSource TO VERTEX Person VALUES($"v_id", $"name", $"email", $"username", $"created_at") USING SEPARATOR=",", HEADER="true", USER_DEFINED_HEADER="MyHeader", REJECT_LINE_RULE=reject_header, EOL="\n", QUOTE="double";
}
ENDhttps://stackoverflow.com/questions/70398992
复制相似问题