【问题标题】:Error import csv in NEO4J在 NEO4J 中导入 csv 时出错
【发布时间】:2018-05-15 13:45:54
【问题描述】:

我正在关注这个guide 来创建图形数据集。现在我必须在 Neo4j 中导入一个 CSV 文件。为此,我使用了script,我只编辑了 CSV 文件的路径。

当我在 Neo4j shell 中执行它时,我得到了这个错误:

Neo.ClientError.Statement.SyntaxError: Invalid input 'R': expected 'e/E' 
(line 23, column 2 (offset: 1116))
"DROP CONSTRAINT ON (a:PERSON) ASSERT a.number IS UNIQUE;"

此外,这些行带有错误下划线:

外部输入

ON CREATE SET a.first_name = line.FIRST_NAME, a.last_name = line.LAST_NAME, 
a.full_name = line.FULL_NAME
ON MATCH SET a.first_name = line.FIRST_NAME, a.last_name = line.LAST_NAME, 
a.full_name = line.FULL_NAME
...
ON CREATE SET c.start = toInt(line.START_DATE), c.end= toInt(line.END_DATE), 
c.duration = line.DURATION
MERGE (d:LOCATION {cell_tower: line.CELL_TOWER})
ON CREATE SET d.address= line.ADDRESS, d.state = line.STATE, d.city = 
line.CITY
...

相反,这一行得到以下错误消息:

缺少';'下降时

DROP CONSTRAINT ON (a:PERSON) ASSERT a.number IS UNIQUE;

【问题讨论】:

  • 与其在 ON CREATE SET 和 ON MATCH SET 中重复相同的事情,只需将这些用于特定于一个或另一个的属性,而不是两者。然后使用普通的 SET 来设置你想要在任何情况下设置的属性。

标签: neo4j cypher


【解决方案1】:

首先,您应该将 CSV 文件放在 Neoj4 导入目录中。如果您使用的是 Windows 桌面社区版版本,则此目录为 %APPDATA%\Neo4j Community Edition\import(请参阅 file location docs)。

然后将您的LOAD CSV 语句更改为:

LOAD CSV WITH HEADERS FROM "file:///call_records_dummy.csv" AS line

【讨论】:

  • 在 windows 中我找不到这个文件。我在 linux 中有 neo4j dekstop v1.1 我编辑了 conf 文件以从任何地方加载文件,但我有同样的错误
  • 愚蠢的问题:我可以一次插入所有指令吗?我每次必须插入一条指令吗?
【解决方案2】:
  1. 在数据集中添加 ID 字段
  2. 重命名数据集中“cell_tower”中的字段“cell_site”
  3. 打开 .conf 文件并允许从任何地方加载文件
  4. 在块中执行指令,而不是在同一命令中。

【讨论】:

  • 这是您解决问题的分步程序吗?
猜你喜欢
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2017-11-18
相关资源
最近更新 更多