Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在浏览器中使用Neo4j中的cypher导出大型结果集的csv文件?_Neo4j_Cypher - Fatal编程技术网

如何在浏览器中使用Neo4j中的cypher导出大型结果集的csv文件?

如何在浏览器中使用Neo4j中的cypher导出大型结果集的csv文件?,neo4j,cypher,Neo4j,Cypher,我在Ubuntu的浏览器上使用Neo4j。我有100多万个节点,我想将它们导出为csv文件 当返回数据的大小很小,如“匹配n返回n限制3”时,我可以使用一个很大的“下载csv”按钮。但是当涉及到1000多行这样的大结果集时,shell只会说“Resultset太大(超过1000行)”,而按钮不会显示出来 如何为大型结果集导出csv文件?您还可以使用我的shell扩展将密码结果导出到csv 请看这里: 只需为import-cypher命令提供一个-o output.csv文件。好吧,我只是使用li

我在Ubuntu的浏览器上使用Neo4j。我有100多万个节点,我想将它们导出为csv文件

当返回数据的大小很小,如“匹配n返回n限制3”时,我可以使用一个很大的“下载csv”按钮。但是当涉及到1000多行这样的大结果集时,shell只会说“Resultset太大(超过1000行)”,而按钮不会显示出来


如何为大型结果集导出csv文件?

您还可以使用我的shell扩展将密码结果导出到csv

请看这里:


只需为import-cypher命令提供一个-o output.csv文件。

好吧,我只是使用linux shell来完成所有工作

neo4j shell-file query.cql | sed的/|//g'>myfile.csv

就我而言,我还必须将UTF-8转换为ISO-8859-1,因此我键入:

neo4j shell-file query.cql | sed的/|//g'| iconv-f UTF-8-t ISO-8859-1-o myfile.csv

PS:sed执行替换:“s/|//g’表示,将所有“|”替换为“;”,即使每行(g)有一个以上

希望这能有所帮助。

关于

我们采用了下面提到的方法。这对我们很有效。 数据以csv格式正确格式化

https://github.com/jexp/neo4j-shell-tools#cypher-import

import-cypher command from neo4J shell.

neo4j-sh (?)$ import-cypher -o test.csv MATCH (m:TDSP) return m.name

我知道这是一个老帖子,但也许这会帮助其他人。对于任何使用Symfony框架的人,您都可以制作一个非常简单的控制器,将Neo4j密码查询导出为CSV。这使用Graphaware NEO4J PHP OGM()来运行原始密码查询。我想这也可以在没有Symfony的情况下,仅使用普通PHP轻松实现

只需制作一张表格(如果需要,请使用细枝):

这使您可以直接从浏览器下载带有utf-8字符的CSV,并提供所有密码自由

重要提示:这没有任何查询检查,在使用之前设置适当的安全性或查询检查是一个非常好的主意:)

密码shell:

https://neo4j.com/docs/operations-manual/current/tools/cypher-shell/
neo4j的最新版本中包含了以下内容:

cat query.cql | cypher-shell > answer.csv

限制1000是由于浏览器的MaxRows设置。您可以将其更改为例如10000,从而能够通过原始帖子中描述的下载/导出csv按钮一次下载10000。在我的笔记本电脑上,下载按钮的限制在10000到20000之间。
通过将MaxRows限制设置为50000或300000,我可以在等待一段时间后在屏幕上获取数据。手动选择、复制和粘贴作品。但是,由于浏览器变得非常慢,因此无法在每次查询后关闭浏览器以外的任何操作。

还有另一个选项,可以使用cURL命令和http/https neo4j
transaction/commit
端点将数据导出为CSV

下面是一个如何做到这一点的示例

curl -H accept:application/json -H content-type:application/json \
     -d '{"statements":[{"statement":"MATCH (p1:PROFILES)-[:RELATION]-(p2) RETURN ... LIMIT 4"}]}' \
     http://localhost:7474/db/data/transaction/commit \
     | jq -r '(.results[0]) | .columns,.data[].row | @csv'
此命令使用
jq
。确保机器中安装了
jq
,并将结果转换为CSV格式

注意:您可能需要在标头中传递授权以进行身份验证

只需通过
-H'授权:Basic XXXXX='\
即可避免401

这里是一个有详细解释的博客。

如果浏览器中没有java,我可以这样做吗?我看不到在浏览器中这样做的方法。另一种方法是使用例如curl,然后通过例如shell脚本进行转换。您能再解释一下吗?使用curl发出密码查询,请参阅。使用一些json解析器并编写一个简短的脚本来进行json到csv的转换。我使用了它,结果非常好,只是一个问题:如何引用导入的文件?假设我想通过导入cypher来实现这一点,我该如何实现?如何引用导入文件的第一列?:“使用定期提交1000从加载CSV”file:///home/c.csv'作为第[0]行作为id1的行,第[1]行作为id2匹配(n2:M{ID:id2})创建(n1:A{number:id1})-[:LIKES{P:“Yes”}]>(n2)“尝试了这个,但是在按照安装工具的说明进行安装之后,I neo4j shell说它找不到命令export cypher或import cypher当我粘贴代码时,在意外标记附近出现
语法错误
(“`将cypher shell重定向到文件似乎也会导致它默认为CSV格式。从文档中看不太明显,但它的行为似乎就是这样。
cat query.cql | cypher-shell > answer.csv
curl -H accept:application/json -H content-type:application/json \
     -d '{"statements":[{"statement":"MATCH (p1:PROFILES)-[:RELATION]-(p2) RETURN ... LIMIT 4"}]}' \
     http://localhost:7474/db/data/transaction/commit \
     | jq -r '(.results[0]) | .columns,.data[].row | @csv'