我尝试导入的是带有电话呼叫的CSV文件,并将其表示为节点中的电话号码,并将每个呼叫表示为箭头。 该文件由管道分隔。
我尝试过第一个版本:
load csv from 'file:///com.csv' as line FIELDTERMINATOR '|'
with line
merge (a:line {number:COALESCE(line[1],"" )})
return line
limit 5
按预期工作,为每一行创建一个节点(传出号码)。
之后我可以用简单的
来测试我做了什么Match (a) return a
所以我尝试了以下步骤,即创建呼叫的第二个节点(接收方)
load csv from 'file:///com.csv' as line FIELDTERMINATOR '|'
with line
merge (a:line {number:COALESCE(line[1],"" )})
merge (b:line {number:COALESCE(line[2],"" )})
return line
limit 5
运行此代码后,我没有收到此操作的答案(我使用localhost:7474 / broser上的浏览器GUI),如果我尝试在此服务器上执行任何查询,我也没有得到任何结果。< / p>
如果我跑
再说一遍match (a) return a
没有任何反应。
我必须恢复生命的唯一方法是停止服务器并重新启动它。
有什么想法吗?
答案 0 :(得分:0)
有可能,打开两次大文件会导致问题,因为它主要基于操作系统如何处理大文件。 无论如何,如果你在没有限制5&#39;的情况下意外运行它。然后它可能发生,因为你试图在一个事务中加载26GB。
由于LOAD CSV适用于中型数据集,我建议使用两种解决方案: - 使用neo4j-import工具,或 - 我会尝试将文件拆分为较小的部分,您应该使用定期提交来防止内存不足和挂起,如下所示: 使用周期性委托100000 LOAD CSV FROM ...