将Social Network Benchmark中生成的.csv文件加载到Neo4j的问题

时间:2015-06-08 09:35:23

标签: csv neo4j

我在使用Neo4j时遇到了问题,如果你能帮忙,我会非常感谢你!

我的工作是这样的。我必须研究和评估几个图形数据库,为此,我必须使用基准测试。我使用的基准是社交网络基准(SNB) 我根据所选的设置生成具有不同设置的文件。类似的东西:forum_0.csv 这个.csv文件有一些标题,如下所示:id | title | creationDate | etc... 我的项目的下一步是将它们加载到Neo4j,构建一个数据库以使用某些查询来测试它们,此时我的问题就从这里开始。

我已经将一些文件加载​​到Neo4j,但是其他文件没有因为错误而加​​载,我不明白为什么。

我正在使用此代码加载这些文件。在这个例子中,我将forum.csv加载到Neo4j。

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FORUM_0 {id:csvLine.id, title:csvLine.title, creationDate:csvLine.creationDate})

使用此代码,此文件中的数据将正确加载到Neo4j。

但是使用此文件 - forum_containerOf_post_0.csv我无法使用此标头正确加载数据 - Forum.id | Post.id

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FCOP_0 {Forum.id:csvLine.Forum.id, Post.id:csvLine.Post.id})

这里的问题是我无法在forum_containerOf_post_0.csv的加载过程中访问forum_0.csv的id。我如何访问该ID或其他财产?是否缺少一些Cypher代码? 这个过程有什么问题吗?在这里有人可以使用 - SNB和Neo4j吗?

这里有人帮我解决这个问题吗?

我试图解释我的问题,但如果您对我的问题有疑问,请随时提问。

感谢您的时间

2 个答案:

答案 0 :(得分:0)

问题在于第二个文件中的标题。如果要在标题列名称中嵌入句点.,则需要在load csv语句中引用列时返回列。

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FCOP_0 {Forum.id:csvLine.`Forum.id`, Post.id:csvLine.`Post.id`})

答案 1 :(得分:0)

是的,你的答案是正确的,但稍作修正

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"

CREATE (:FCOP_0 {`Forum.id`:csvLine.Forum.id, `Post.id`:csvLine.Post.id})

但我发现了其他问题。这创建了FCOP_0节点标签,但没有forum_containerOf_post_0.csv具有的属性。这两个属性是Forum.id和Post.id,但是在这个过程中,属性不会加载到相应的节点......它在Neo4j中创建了FCOP_O节点标签,但是它们的节点没有属性,这两个属性。 / p> 你能帮帮我吗?