首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Neo4j用自定义ID加载CSV

Neo4j用自定义ID加载CSV
EN

Stack Overflow用户
提问于 2015-08-05 09:41:09
回答 5查看 1.1K关注 0票数 3

我使用的是Neo4j 2.2.3,并尝试使用Cypher的LOAD CSV导入一个CSV文件,如下所示:

代码语言:javascript
运行
复制
PRODUCT_ID,PRODUCT_DESC,PRODUCT_TYPE
99,"A","X"
999,"B","X"
9999,"C","Y"
99999,"D","Y"

但是,我在使用自定义ID时遇到了困难。Neo4j不导入它们。

PRODUCT_ID列是来自不同系统(我无法控制)的唯一ID,但可以说,它不是行号。需要PRODUCT_ID来匹配来自其他文件的数据。

当我查看该文件时,我会看到所有字段:

代码语言:javascript
运行
复制
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
RETURN row

当我选择除PRODUCT_ID以外的任何列时,情况也是如此。

代码语言:javascript
运行
复制
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
RETURN row.PRODUCT_DESC

当我使用RETURN row.PRODUCT_ID时,我会得到一个空表。

同样,这是行不通的:

代码语言:javascript
运行
复制
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
CREATE (p:Product { id: toInt(row.PRODUCT_ID),
                    name: row.PRODUCT_DESC,
                    type: row.PRODUCT_TYPE })

我得到了描述和类型的产品,但是I丢失了。我需要ID来匹配这个CSV文件与其他文件,但我是卡住了,并希望得到一些帮助。我还没有在文档中看到任何关于ID列的限制。

当我将PRODUCT_ID列从第一个位置移开时,它与当时的第一列被忽略这一警告一起工作。因此,如果我将PRODUCT_ID作为最后一列,则PRODUCT_DESC为null。是否有必要将行号作为CSV中的第一列?看上去很奇怪。

有什么建议吗?

EN

回答 5

Stack Overflow用户

发布于 2015-08-05 13:59:18

可能是这个问题吗?

http://www.markhneedham.com/blog/2014/10/18/neo4j-load-csv-the-sneaky-null-character/

基本上,他的CSV中有NULL字符,这导致数据被错误地读取。

票数 1
EN

Stack Overflow用户

发布于 2015-08-06 12:33:46

不知道这是什么问题。我将数据复制到一个junk.txt文件中,并且能够在没有问题的情况下导入。

LOAD CSV WITH HEADERS FROM 'file://junk.txt' as csvLine FIELDTERMINATOR ',' return csvLine;

注:也没有FIELDTERMINATOR

最初的问题是关于产品id的问题。

LOAD CSV WITH HEADERS FROM 'file://junk.txt' as csvLine FIELDTERMINATOR ',' return csvLine.PRODUCT_ID;

票数 1
EN

Stack Overflow用户

发布于 2015-08-06 20:23:13

它可能是(BOM)文件开头的两个字节。

如果您删除它(在文本中是不可见的),它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31828803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档