如何使用scala的定期提交将csv文件加载到neo4j?

How to use periodic commit from scala to load csv file to neo4j?

我正在尝试通过将 CSV 文件从 scala 代码加载到 neo4j 来创建图表。

我正在使用导致以下错误的定期提交:

Exception in thread "main" org.neo4j.driver.v1.exceptions.ClientException: 
Executing queries that use periodic commit in an open transaction is not possible.

关于为什么会出现此错误以及如何避免的任何帮助?我正在使用定期提交,因为我将加载超过 100k 个节点。除了定期提交之外还有其他选择吗?

代码:

def createGraph(createStmt: ArrayBuffer[String]): Unit = {
val session = driver.session()
val greeting: String = session.writeTransaction(new TransactionWork[String]() {
  override def execute(transaction: Transaction): String = {
    var result1: StatementResult = transaction.run("USING PERIODIC COMMIT\n"+
                                                  "LOAD CSV WITH HEADERS FROM \"file:///path/to/file.csv\" AS csvLine\n"+
                                                  "CREATE (p:Person {id: toInt(csvLine.id), name: csvLine.name})")

    "Graph Created"
  }
})

}

交易上的 driver docs 表明 "Auto-commit transactions are the only way to execute USING PERIODIC COMMIT Cypher statements."

自动提交作为 session.run(...) 执行,无需使用 session.writeTransaction(...) 启动新事务。