将CSV加载到Neo4j中的错误

时间:2018-06-09 13:00:31

标签: csv neo4j syntax

我正在尝试将本地存储的.csv文件加载到Neo4j中。我也尝试将其发布到Google表格,但这并没有让我更接近我需要的东西。

我已将csv存储在我的导入文件夹中,文件路径为:

“C:\ Users \ FJ1993.Neo4jDesktop \ neo4jDatabases \ database-325e28a1-76ac-4268-820e-844bda8d4812 \ installation-3.4.0 \ import \ GTD sample_location_target_attacker.csv

在尝试加载到Neo4j时,我尝试了两种基于我见过的教程和Neo4j文档的方法:

1)

使用HEADERS来加载CSV “file:// C:/Users/FJ1993/.Neo4jDesktop \ neo4jDatabases / database-325e28a1-76ac-4268-820e-844bda8d4812 \ installation-3.4.0 / import / GTD”sample_location_target_attacker.csv 带线

错误是

Neo.ClientError.Statement.SyntaxError:输入'i'无效:预期'\',''',''','b','f','n','r','t', UTF16或UTF32(第1行,第127列(偏移量:126)) “LOAD CSV with HEADERS FROM”file:// C:/Users/FJ1993/.Neo4jDesktop \ neo4jDatabases / database-325e28a1-76ac-4268-820e-844bda8d4812 \ installation-3.4.0 / import / GTD“sample_location_target_attacker.csv WITH line “

2)

使用HEADERS来加载CSV “file:// C:/Users/FJ1993/.Neo4jDesktop \ neo4jDatabases / database-325e28a1-76ac-4268-820e-844bda8d4812 \ installation-3.4.0 / import / GTD sample_location_target_attacker.csv” AS csvDoc

错误是

Neo.ClientError.Statement.SyntaxError:输入'i'无效:预期'\',''',''','b','f','n','r','t', UTF16或UTF32(第1行,第127列(偏移量:126)) “LOAD CSV with HEADERS FROM”file:// C:/Users/FJ1993/.Neo4jDesktop \ neo4jDatabases / database-325e28a1-76ac-4268-820e-844bda8d4812 \ installation-3.4.0 / import / GTD sample_location_target_attacker.csv“AS csvDoc “

3)我还尝试从我发布的Google表格上传。

此链接为https://docs.google.com/spreadsheets/d/e/2PACX-1vSOpbMUwFnf7gMYm7JaB3gzWGV7or0qU7cLIsjwApq4sH63v88O1fd0RrmbxvBlVWMfVASh0sw9zJX_/pubhtml

我的Cypher是:

使用“https://docs.google.com/spreadsheets/d/e/2PACX-1vSOpbMUwFnf7gMYm7JaB3gzWGV7or0qU7cLIsjwApq4sH63v88O1fd0RrmbxvBlVWMfVASh0sw9zJX_/pubhtml”的标题加载CSV AS线 返回10

到哪个错误消息:

Neo.DatabaseError.General.UnknownError:在https://docs.google.com/spreadsheets/d/e/2PACX-1vSOpbMUwFnf7gMYm7JaB3gzWGV7or0qU7cLIsjwApq4sH63v88O1fd0RrmbxvBlVWMfVASh0sw9zJX_/pubhtml @位置4388 - 有一个以引号开头的字段,而它结束那个引号,在该结束引号之后该字段中似乎有字符。那是不支持的。这就是我读到的:'docs-smheo':'

有谁知道如何将csv文件导入Neo4j?我不够精通写入命令行,完全依赖于GUI。

由于

3 个答案:

答案 0 :(得分:2)

在" import / GTD"之后,看起来你的引号位于错误的位置,文件后面缺少正斜杠,你不应该指定完整路径。

您的文件路径中还有正斜率和反斜杠的混合。使用正斜杠,但由于您没有指定完整路径,因此仅当您的导入文件夹中有文件夹时才有用。

我建议您在GTD之后删除空格,以确保安全。

试试这个,我希望它有所帮助:

LOAD CSV WITH HEADERS FROM "file:///GTD sample_location_target_attacker.csv" WITH line

<强>原始

LOAD CSV WITH HEADERS FROM "file://C:/Users/FJ1993/.Neo4jDesktop\neo4jDatabases/database-325e28a1-76ac-4268-820e-844bda8d4812\installation-3.4.0/import/GTD" sample_location_target_attacker.csv WITH line

答案 1 :(得分:1)

首先猜测你应该使用FIELDTERMINATOR确切的字段分隔符';'为这不应该在你的内容中。我用|只要有可能。

neo4j网站上有很多免费的教育内容,市场上的好书增加了一种教学方法。

无耻插件:我推荐“学习Neo4j”第二版(剧透:我是作者)

答案 2 :(得分:1)

我认为您的问题出在导入文件的路径中。

当抛出错误时,有一个&#39; ^&#39;在&#39; i&#39; &#39; ... 4812 \ installation ...&#39;?

(很难看,但我敢打赌它在那里!)

Cypher正在解析命令行,包括引用的文件名,并解释&#39; \&#39;作为逃脱序列的开始。它没有尝试读取您的输入文件。

您需要使用&#39; /&#39;为你的路径分隔符。

由于您加载的文件位于导入目录中,因此您可能不需要完整路径。我找到了:

LOAD CSV WITH HEADERS FROM "file:///Neo4jQuestion.csv" as line 
CREATE (SomeNode {location:line.location, target:line.target, attacker:line.attacker});

适用于我的Windows框。 (注意&#39;文件之后的三个斜杠:&#39;)