csv - 从 CSV 文件导入关系
问题描述
我正在尝试从 CSV 文件导入数据,虽然我已经设法导入节点,但我不知道如何导入关系。
我有三个文件:Customer.csv、Orders_Test.csv 和 Order_history.csv。数据被捕获在不同的列和行中。Customer.csv 有两个标题,Customer_ID 和 Name,并包含以下数据:1 Jaap,2 Victoria。Orders_Test.csv 有一个标头 Order_ID,其中包含以下数据:1 2 3 4 5 6 7 8 9 10。Order_history.csv 有两个标头 Customer_ID 和 Order_ID,其中包含数据(同样在列中)1 1、1 2、 1 3, 1 4, 1 5, 2 6, 2 7, 2 8, 2 9, 2 10。换句话说,在这个文件中,我必须将每个客户链接到五个订单。
这是我用来加载/导入数据的代码:
LOAD CSV WITH HEADERS FROM 'file:///Customer.csv' AS row
CREATE (c:Customer {CustomerID: toInteger (row.Customer_ID), name:
row.Name})
LOAD CSV WITH HEADERS FROM 'file:///Orders_test.csv' AS row
CREATE (o:Order {OrderID: toInteger (row.Order_ID)})
LOAD CSV WITH HEADERS FROM 'file:///Order_history.csv' AS row
MATCH (c:Customer {CustomerID: row.Customer_ID})
MATCH (o:Order {OrderID: row.Order_ID})
MERGE (c)-[:ORDERED]->(o)
导入有关客户和订单的数据不是问题,但是当我执行最后一个加载语句时没有任何反应。当我只有一个客户时,会创建关系,但当我有两个或更多时,则不会。知道我做错了什么吗?
解决方案
您忘记添加toInteger
函数,因此您必须输入 mismatch :
LOAD CSV WITH HEADERS FROM 'file:///Order_history.csv' AS row
MATCH (c:Customer {CustomerID: tointeger(row.Customer_ID)})
MATCH (o:Order {OrderID: toInteger(row.Order_ID)})
MERGE (c)-[:ORDERED]->(o)
推荐阅读
- python - 这个 Matplotlib 代码片段是如何工作的
- click - 如何使用 tablesorter 允许单击位于主题内的按钮?
- html - 如何防止输入数据后调整行大小
- r - 将大列表的元素取消嵌套到数据框中
- javascript - 用 Puppeteer 注入函数
- android - 查找适用于 Android 的单独 REST API 密钥和 MAP SDK 密钥 - mapmyindia API
- lua - 如何使用hammerspoon CLI?
- android - Jetpack Compose:更新列表元素内容时不会发生重组
- python - 基于不同列的具有可变窗口的 Pandas 滚动平均值
- c++ - 如何在 QT C++ 中等待另一个窗口关闭?