python使用 Neo4j 的 LOAD CSV 导入功能来导入数据代码
时间: 2024-02-24 15:53:23 浏览: 102
使用 Neo4j 的 LOAD CSV 导入功能可以更有效地导入大量数据。以下是一个使用 LOAD CSV 导入数据的示例代码:
首先,假设你有一个名为 `hz_relation.csv` 的 CSV 文件,其中包含了节点和关系的信息,例如:
```
start_node,end_node,relationship_type
A,B,KNOWS
B,C,FRIEND_OF
C,D,WORKS_WITH
```
然后,你可以使用以下的 Cypher 查询语句从 CSV 文件中导入数据:
```
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///hz_relation.csv" AS row
MERGE (start:Node {name: row.start_node})
MERGE (end:Node {name: row.end_node})
MERGE (start)-[:RELATIONSHIP_TYPE]->(end)
```
这个查询语句将 CSV 文件中的每一行都导入为一个节点和一条关系。`USING PERIODIC COMMIT` 用于在导入大量数据时将事务拆分为更小的批次,以防止内存使用过度。
在这个查询语句中,我们使用 `LOAD CSV WITH HEADERS` 从 CSV 文件中加载数据,并将每一行作为一个名为 `row` 的映射。然后,我们使用 `MERGE` 命令创建每个节点,并使用 `MERGE` 命令创建每条关系。在这个例子中,我们使用 `relationship_type` 列中的值作为关系的类型。
最后,你可以使用以下的 Python 代码来运行这个 Cypher 查询语句:
```python
from neo4j import GraphDatabase
uri = "bolt://localhost:7687"
username = "neo4j"
password = "password"
driver = GraphDatabase.driver(uri, auth=(username, password))
with driver.session() as session:
session.run("""
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///hz_relation.csv" AS row
MERGE (start:Node {name: row.start_node})
MERGE (end:Node {name: row.end_node})
MERGE (start)-[:RELATIONSHIP_TYPE]->(end)
""")
```
这个代码将会在 Neo4j 数据库中创建节点和关系,并将它们导入到你的图中。请确保你已经安装了 Py2neo 来运行以上代码。
阅读全文