尝试将数据从 CSV 加载到 Neo4J 时出错

Error when trying to load data from CSV into Neo4J

我的数据是这样的:

predecessor,successor
AAMBD01P.ACCOUNT_ANALYTICAL_BALANCE,DIMS32P.NHJ_DEPOSIT
AAMBD01P.CUSTOMER_ACCOUNT_REL,DIMS32P.NHJ_DEPOSIT
AAMBD01P.CUSTOMER_SUB_DETAIL2_BBKKA,DIMS32P.NHJ_DEPOSIT
AAMBD01P.CUSTOMER_BBKKA_DETAIL,DIMS32P.NHJ_DEPOSIT
AAMBD08P.CUSTOMER_DETAIL2_FULL,DIMS32P.NHJ_DEPOSIT
AAMBD08P.ACC_CURR_DEP_STAT_HIST,DIMS32P.NHJ_DEPOSIT
MISV19P.V_CUSTOMER_SEGM,DIMS32P.NHJ_DEPOSIT

我正在尝试将它加载到我的 Neo4J 实例中,但出现此错误:

neo4j.exceptions.CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: Query cannot conclude with LOAD CSV (must be RETURN or an update clause) (line 1, column 1 (offset: 0))
"LOAD CSV WITH HEADERS FROM 'file:///data.csv' AS line"
 ^}

我的代码:

from neo4j import GraphDatabase

driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "187179"))

def add_data(tx):
    tx.run("LOAD CSV WITH HEADERS FROM 'file:///data.csv' AS line")
    tx.run("MERGE (s:src {id: line.source})")
    tx.run("MERGE (d:dst {id: line.destination})")
    tx.run("CREATE (s)-[:FEEDs_INTO]->(d)")

with driver.session() as session:
    session.write_transaction(add_data)
driver.close()

您正试图 运行 将单个查询分为 4 个部分。 tx.run() 需要完整查询。

您可以将代码修改为:

def add_data(tx):
    tx.run("LOAD CSV WITH HEADERS FROM 'file:///data.csv' AS line \
           MERGE (s:src {id: line.source}) \
           MERGE (d:dst {id: line.destination}) \
           CREATE (s)-[:FEEDs_INTO]->(d)")