如何将 excel 关系矩阵导入 Neo4j?
How to import excel relationship matrix to Neo4j?
我想导入一个excel文件,它实际上是一个关系矩阵nxn,n个元素之间有几种关系类型。
id| name | element1 | element2 | element3 ... n
1 | element1 1;2;3 1;5
2 | element2 1;2;3
3 | element3 1;5
...
我将 excel 保存为 CSV,这会创建很多空单元格(空单元格)。
在 Neo4j 中我试过:
load csv with headers from 'file:///test.csv' as line
WITH line where not line.ID is null
merge (c:element{id: toInteger(line.id),name: line.name})
因此,我没有收到任何更改和记录。
属性 名称在 Neo4j Cypher 中是 case-sensitive。
您的文件包含 id
列,但您正在检查 where not line.ID is null
。
这将跳过所有行,因为您的 CSV 文件中没有 ID
列。
在下面找到您的查询的修改版本以提高可读性:
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS line
WITH line
WHERE line.id IS NOT NULL
MERGE (c:element{id: toInteger(line.id),name: line.name})
除了@Raj 的回答(属性 名称区分大小写),您的 CSV 文件需要在所有值之间使用相同的分隔符。
您的 CSV 文件(如您的问题所示)使用了不一致的分隔符。它有时使用空格,有时使用空格和竖线 (|
)。这是行不通的,因为 LOAD CSV 子句只支持一种定界符。此外,如果您不使用默认分隔符逗号,则需要使用 FIELDTERMINATOR
选项来指定该分隔符。
这是使用默认分隔符逗号的 CSV 文件的固定版本。请注意,两个相邻的逗号用于指示缺失值。如果一行缺少它的第一个值,那么第一个逗号应该在该行的开头。此外,请注意没有多余的空格。
id,name,element1,element2,element3
1,element1,,1;2;3,1;5
2,element2,1;2;3
3,element3,1;5
我想导入一个excel文件,它实际上是一个关系矩阵nxn,n个元素之间有几种关系类型。
id| name | element1 | element2 | element3 ... n
1 | element1 1;2;3 1;5
2 | element2 1;2;3
3 | element3 1;5
...
我将 excel 保存为 CSV,这会创建很多空单元格(空单元格)。
在 Neo4j 中我试过:
load csv with headers from 'file:///test.csv' as line
WITH line where not line.ID is null
merge (c:element{id: toInteger(line.id),name: line.name})
因此,我没有收到任何更改和记录。
属性 名称在 Neo4j Cypher 中是 case-sensitive。
您的文件包含 id
列,但您正在检查 where not line.ID is null
。
这将跳过所有行,因为您的 CSV 文件中没有 ID
列。
在下面找到您的查询的修改版本以提高可读性:
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS line
WITH line
WHERE line.id IS NOT NULL
MERGE (c:element{id: toInteger(line.id),name: line.name})
除了@Raj 的回答(属性 名称区分大小写),您的 CSV 文件需要在所有值之间使用相同的分隔符。
您的 CSV 文件(如您的问题所示)使用了不一致的分隔符。它有时使用空格,有时使用空格和竖线 (|
)。这是行不通的,因为 LOAD CSV 子句只支持一种定界符。此外,如果您不使用默认分隔符逗号,则需要使用 FIELDTERMINATOR
选项来指定该分隔符。
这是使用默认分隔符逗号的 CSV 文件的固定版本。请注意,两个相邻的逗号用于指示缺失值。如果一行缺少它的第一个值,那么第一个逗号应该在该行的开头。此外,请注意没有多余的空格。
id,name,element1,element2,element3
1,element1,,1;2;3,1;5
2,element2,1;2;3
3,element3,1;5