我正在尝试将我的CSV文件导入到neo4j,以下是密码查询:
load csv with headers from "file:/Users/mac/Desktop/Dataset.csv" as row with row
merge (u:User {name:row.user, nationality:row.nation})
merge (l:Location {name:row.location,region:row.region})
merge (u) -[t:to {date:row.DateReview,rating:row.rating}]-> (l)
return u,l,t
它运行了几秒钟,然后返回:
Cannot merge the following node because of null property value for 'nationality': (:User {nationality: null})
问题是,同样的查询对于40行的csv文件非常有效,但现在我的csv文件大约有17200行,加上它的大小是2,2Mo。事先感谢您的任何帮助或建议。
2条答案
按热度按时间ao218c7q1#
这意味着列National上的某些行为空(NULL)。Neo4j不允许为属性赋值为空值。如果属性为空,则将跳过该示例属性。还要检查其他字段,如DateReview和Rating。
如果某些行为空,则可以在执行合并后“设置”Cypher查询中的值。Trim正在确保空格也将被视为空白(NULL)。
不必担心将国籍的值设置为空。Neo4j不会在数据库中存储该Nationality:空值。
请在Location.Region和To.Date上执行相同的技巧(set
dgenwo3n2#
是否确实需要
name
和nationality
属性才能使:User
唯一?如果没有,您可以只在name
字段上使用MERGE
。作为
MERGE
中使用的任何字段为空的备用方法,您可以执行以下操作在导入
DETACH DELETE
之后,所有:具有myMergeField = '_noValue_'
的用户节点如果执行
LIMIT 8000
,则查询运行良好这一事实表明在第8000行之后存在数据问题