使用关系属性时,Neo4j csv导入中的“[null]不是受支持的属性值”

时间:2014-03-17 01:56:02

标签: csv neo4j cypher

这是针对Neo4j Milestone版本2.1.0-M01。我一直在尝试导入这个小的.csv文件:

Google Doc

我为D栏尝试了四种不同的格式。

  • 类型:" club"
  • 类型:俱乐部
  • 类型:俱乐部
  • 俱乐部

我的Cypher查询:

LOAD CSV FROM "file:<PATH_TO_FILE>/Soccer_players.csv" AS line
MERGE (p:Player {name: line[0]})
MERGE (t:Team {name: line[1]})
CREATE (p)-[:PLAYS_FOR {type: line[3]}]->(t)

当我不包含&#34; {type:line [3]}&#34;时,它导入正常。尝试添加此关系属性时,我收到错误消息

  

[null]不是受支持的属性值

是的,我可以作为节点导入,但为什么不能以这种方式在关系上设置属性。

2 个答案:

答案 0 :(得分:1)

我将第四列更改回了club / national,以及您从第三列获取团队名称的查询,并且没有任何问题。

请参阅Google Doc以获取更新的工作表副本以及我的Cypher:

LOAD CSV FROM "file:filepath/Soccerplayers.csv" AS line
MERGE (p:Player {name: line[0]})
MERGE (t:Team {name: line[2]})
CREATE (p)-[:PLAYS_FOR {type: line[3]}]->(t)

neo4j-sh (?)$ match n-[r:PLAYS_FOR]->m return n.name,r.type,m.name limit 5;
+------------------------------------------------------------+
| n.name            | r.type     | m.name                    |
+------------------------------------------------------------+
| "Sergio Romero"   | "club"     | "Monaco"                  |
| "Sergio Romero"   | "national" | "Argentina National Team" |
| "Mariano Andœjar" | "club"     | "Catania"                 |
| "Mariano Andœjar" | "national" | "Argentina National Team" |
| "Agust’n Ori—n"   | "club"     | "Boca Juniors"            |
+------------------------------------------------------------+

答案 1 :(得分:0)

我遇到了同样的问题。如果CSV文件有4列,并且您从所有4列中提取数据,则会给出null属性错误。因此,对我来说简单的解决方案是在最后添加一个虚拟的第5列并加载。

也许导入者正在寻找一些EOL角色。