如何从csv文件导入数据

如何从csv文件导入数据,csv,import,neo4j,Csv,Import,Neo4j,我是neo4j的新手,我正在尝试从两个csv文件导入数据,但我无法做到这一点。 这两个csv文件具有以下结构: master.csv: ID NAME LASTNAME COLLEGE award.csv: playerID award year 我如何为玩家和奖励创建节点,以及如何连接它们 我试着使用这个代码:(但显然它不起作用) 如果我还要为学院添加节点,对吗 CREATE CONSTRAINT ON (c:COLLEGE) A

我是neo4j的新手,我正在尝试从两个csv文件导入数据,但我无法做到这一点。 这两个csv文件具有以下结构:

master.csv:

ID    NAME    LASTNAME     COLLEGE
award.csv:

playerID    award                  year
我如何为玩家和奖励创建节点,以及如何连接它们

我试着使用这个代码:(但显然它不起作用)

如果我还要为学院添加节点,对吗

CREATE CONSTRAINT ON (c:COLLEGE) ASSERT c.name IS UNIQUE;

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///master.csv" as line fieldterminator ';'
WITH line
MATCH (player:PLAYER {id:line.playerID})
MERGE (college:COLLEGE {name:line.college}})
CREATE (player)-[:studied]->(college)

谢谢

据我所知,主要是在你的陈述中使用正确的CASE/CASE/CASE。根据您显示的输入,我得出以下结论(为我工作):


希望这有帮助,Tom

*…MATCH(player:player)…一切看起来都很好,问题可能是您试图在单个事务中运行它。。。您必须在单独的事务中创建每个约束,然后分别运行第一个LOAD CSV和第二个LOAD CSV。csv文件可能有问题吗?首先感谢您回答我,但当我运行第二个命令时,它会返回以下内容:(无更改,无记录)您能否共享输入文件的实际内容(标题和前几行就可以了)(上面不能是它们,因为您声明使用了分隔符)。如果大小写有任何不同,它将不起作用。是的,当然,两个文件的格式相同。我也尝试过使用fieldterminator'\t',但结果相同。Tok,award_players.csv与您和我的声明一致。您还可以共享master.csv文件吗?当然,谢谢!!
01          best_player            2010
01          rookie_of_the_year     2011
02          best_player            2012
CREATE CONSTRAINT ON (a:PLAYER) ASSERT a.id IS UNIQUE;

CREATE CONSTRAINT ON (b:AWARD) ASSERT b.award IS UNIQUE;

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "File:///master.csv" as line fieldterminator ';'
CREATE (:PLAYER {id:line.playerID, name:line.firstName, lastName:line.lastName});

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "File:///award.csv" as line fieldterminator ';'
MATCH (player:Player {id:line.playerID})
MERGE (award:AWARD {award:line.award})
CREATE (player)-[r:won]->(award)
set r += {year:line.year}
CREATE CONSTRAINT ON (c:COLLEGE) ASSERT c.name IS UNIQUE;

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///master.csv" as line fieldterminator ';'
WITH line
MATCH (player:PLAYER {id:line.playerID})
MERGE (college:COLLEGE {name:line.college}})
CREATE (player)-[:studied]->(college)
CREATE CONSTRAINT ON (a:PLAYER) ASSERT a.id IS UNIQUE;
CREATE CONSTRAINT ON (b:AWARD) ASSERT b.award IS UNIQUE;

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///master.csv" as line fieldterminator ';'
CREATE (:PLAYER {id:line.bioID, name:line.firstName, lastName:line.lastName});

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///award_players.csv" as line fieldterminator ';'
WITH line
MATCH (player:PLAYER {id:line.playerID})
MERGE (award:AWARD {award:line.award})
CREATE (player)-[r:won]->(award)
SET r += {year:line.year};