对象文件:
ID
ABC-DE
DEF
零件文件:
ID ParentID Level Size
ABC ABC-DE 1 3
DE ABC-DE 1 2
AB ABC 2 2
BC ABC 2 2
DE DEF 1 2
F DEF 2 1
A AB 3 1
B AB 3 1
B BC 3 1
C BC 3 1
D DE 3 1
E DE 3 1
用于加载数据的密码命令行:
LOAD CSV WITH HEADERS FROM 'file:///path_to_file/object.csv' as csvLine FIELDTERMINATOR '\t' CREATE (:Object { Name: csvLine.ID}) RETURN count(*);
LOAD CSV WITH HEADERS FROM 'file:///path_to_file/part.csv' as csvLine FIELDTERMINATOR '\t' MATCH (o:Object {Name: csvLine.ParentID}) MERGE (p:Part {Name: csvLine.ID}) ON CREATE SET p.Size = csvLine.Size CREATE (o) -[:hasPart {Level: csvLine.Level}]-> (p) RETURN count(*);
LOAD CSV WITH HEADERS FROM 'file:///path_to_file/part.csv' as csvLine FIELDTERMINATOR '\t' MATCH (o:Part {Name: csvLine.ParentID}) MERGE (p:Part {Name: csvLine.ID}) ON CREATE SET p.Size = csvLine.Size CREATE (o) -[:hasPart {Level: csvLine.Level}]-> (p) return count(*);
neo4j2.1.7和neo4j2.2.0-M04都存在此问题。
所以我认为这里的问题是cypher将许多更新批处理到一个事务中,然后提交它们。它放入事务中的数量可以通过使用定期提交
来配置。我可能错了,但我认为通常它会将整个数据加载视为一个大事务。
对您来说,这是一个问题,因为当您在第6行时,您可能需要引用回在第3行创建的节点。除了那行不通;如果事务尚未提交,因为cypher正在批处理一系列结果),那么尚未提交的结果可能无法用于后续查询运行。
所以你有几个选择;一种方法是对该零件文件进行两次导入。在第一次传球时,您可能会这样做:
LOAD CSV WITH HEADERS FROM 'file:///path_to_file/part.csv' as csvLine FIELDTERMINATOR '\t'
MERGE (p:Part {Name: csvLine.ID}) ON CREATE SET p.Size = csvLine.Size CREATE (o) -[:hasPart {Level: csvLine.Level}]-> (p) return count(*);
(第一个将确保所有部分都存在于数据库中)
然后在第二次传递时,您可以这样做:
LOAD CSV WITH HEADERS FROM 'file:///path_to_file/part.csv' as csvLine FIELDTERMINATOR '\t' MATCH (o:Part {Name: csvLine.ParentID}) MATCH (p:Part {Name: csvLine.ID}) CREATE (o) -[:hasPart {Level: csvLine.Level}]-> (p) return count(*);
(这只会将它们与关系联系起来)
我从几个csv文件迭代上传节点和边,每个节点类型一个。加载节点工作得很好,但加载边并不总是有效。实际上,有些节点有数字作为标识符--如果是这样的话,所有这种类型的节点都有数字--但加载为字符串,因此创建边失败。手动创建一个边,添加用双引号包装标识符,效果很好。 边缘: 密码命令:
问题内容: 我有一个文件,可以包含3到4列以逗号分隔的数值。空字段位于行末时会被定义为例外: 下表是在MySQL中创建的: 我正在尝试使用MySQL LOAD命令加载数据: 结果表: 问题在于,当原始数据中的字段为空且未定义时,MySQL由于某种原因不会使用列默认值(为NULL),而是使用零。当字段全部丢失时,正确使用NULL。 不幸的是,在这一阶段,我必须能够区分NULL和0,因此将不胜感激。
我两个月前刚开始学习Spring,以前从未做过Ajax或JavaScript。所以我对这个很陌生。我想做的是从控制器中的GET方法加载数据,将其填充到模式中。我正在使用ajax来实现这一点。基本上我做了这家伙做的事https://qtzar.com/2017/03/24/ajax-and-thymeleaf-for-modal-dialogs/正在做。但它不起作用。 希望有人能帮我。 这是我的控制
问题内容: 我正在尝试使用Java + Hibernate + Spring将CSV文件加载到mySQL数据库中。我在DAO中使用以下查询来帮助我加载到数据库中: 我有一些想法可以从http://dev.mysql.com/doc/refman/5.1/en/load- data.html 使用它,以及如何从hibernate +spring应用程序将csv文件导入到mysql中? 但是我得到了错
我正在将一个CSV文件中的20000行数据导入Mysql。 CSV中的列与MySQL表中的列的顺序不同。如何自动分配Mysql表列对应的列? 当我执行 此查询将所有数据添加到第一列。 请建议将数据导入Mysql的自动语法。
我正在通过SSIS将数据从csv文件加载到我的sql表中。是否对从csv文件读取的记录数指定了默认限制? 在加载csv文件时,我的数据流组件只处理5000条记录,尽管它包含5341条记录,如下面的图像所示。我如何修复这个问题?