遇到多行字段时,Neo4j LOAD CSV失败

时间:2015-07-21 19:05:27

标签: neo4j

neo4j-sh (?)$ USING PERIODIC COMMIT
> LOAD CSV WITH HEADERS FROM "file:/home/ubuntu/data/woka-data/woka-data.csv" AS row
> MERGE (woka:Woka           {woka_id:        row.woka_id, woka_title: row.woka_title});
IllegalMultilineFieldException: At file:/home/ubuntu/data/woka-data/woka-data.csv:834 - Multi-line fields are illegal in this context and so this might suggest that there's a field with a start quote, but a missing end quote.

我的内核版本是2.2.3,文件非常大:

-rwxr-xr-x 1 ubuntu ubuntu 2508218727 Jul 21 17:54 woka-data.csv

有任何线索如何解决这个问题?

我更改了文件中字段的顺序,现在报告了第83行的第一个错误。这是这一行:

97801322605720000000,eng,Addison Wesley Longman,,"Wri& Speakg at Work& Build Own CC& Mst
: Perils"

这是

之前的新行
  

:危险

如何解决这个问题?

此错误似乎特定于此内核版本。 在升级之前,我使用了一个类似的文件来导入具有多行字段的相同数据并且它可以工作。

我现在能做什么?

2 个答案:

答案 0 :(得分:3)

尽管已经修复了声明,但该错误在内核版本2.2.3中仍然存在。 我必须在提取时清理所有数据。我删除了导致LOAD CSV失败的所有字符,并显示报告的错误消息或类似信息。

答案 1 :(得分:1)

在源代码中找到此gem。查看csv中的任何行(行)是否有非法引用。逃避这些并再试一次

public class IllegalMultilineFieldException extends FormatException
{
    public IllegalMultilineFieldException( SourceTraceability source )
    {
        super( source, "Multi-line fields are illegal in this context and so this might suggest that " + "there's a field with a start quote, but a missing end quote." );
    }
}

这是Neo4j 2.2.2之前的一个问题。可以找到错误报告here

如果你使用2.2.2之前的任何版本更新它,它应该工作

我正在使用内核版本 Neo4j - 图形数据库内核(neo4j-kernel),版本:2.2.3