将数据从Neo4j导出到CSV的最佳方法是什么,我使用CSV导入器将链接https://github.com/sroycode/neo4j-import中的数据从csv导入neo4j。使用java将数据从Neo4j导出到csv
我已经对数据执行了一些操作,我想要将查询结果返回到csv,任何人都可以向我推荐解决方案。使用的Neo4j 1.9.3和java
IAM 1.6
将数据从Neo4j导出到CSV的最佳方法是什么,我使用CSV导入器将链接https://github.com/sroycode/neo4j-import中的数据从csv导入neo4j。使用java将数据从Neo4j导出到csv
我已经对数据执行了一些操作,我想要将查询结果返回到csv,任何人都可以向我推荐解决方案。使用的Neo4j 1.9.3和java
IAM 1.6
一小片段在Groovy
这样做:
@Grab(group="org.neo4j", module="neo4j-cypher", version="1.9")
@Grab(group='net.sf.opencsv', module='opencsv', version='2.3')
import org.neo4j.kernel.EmbeddedGraphDatabase
import org.neo4j.cypher.javacompat.ExecutionEngine
import au.com.bytecode.opencsv.CSVWriter
assert args, "specify location of graph.db and cypher statement"
def db = new org.neo4j.kernel.EmbeddedGraphDatabase(args[0])
def ee = new ExecutionEngine(db)
def result = ee.execute(args[1])
def columns = result.columns()
System.out.withWriter { writer ->
CSVWriter csv = new CSVWriter(writer)
csv.writeNext(columns as String[])
for (def row in result) {
def values = columns.collect {row[it]}
csv.writeNext(values as String[])
}
}
db.shutdown()
当然opencsv
可以在纯Java环境中使用为好。
感谢您的回复Stefan ..但有什么办法与java..because我已经使用java。 – sakar
您可以轻松地将上面的代码片段转换为普通的旧java - 应该很容易。 –
因为您已经有了ID,您可以使用密码来获取ID(5)中的ID和他们的正向关系,csv分隔符是'|'
为了测试使用的Neo4j壳 语法:Neo4j的壳< INFILE> OUTFILE
INFILE节点看起来像
START n=node(1,2,3,4,5) return ID(n),n.name?,n.property?;
START n=node(6,7,8,9,10) return ID(n),n.name?,n.property?;
....
INFILE对RELN看起来像
START n=node(1,2,3,4,5) MATCH n-[r]->m RETURN ID(n),ID(m),TYPE(r),r.someprop?;
START n=node(6,7,8,9,10) MATCH n-[r]->m RETURN ID(n),ID(m),TYPE(r),r.someprop?;
....
要做到Java API中的相同内容,只是在for循环中运行相同的东西。
你想要单独的节点和关系CSV文件吗? – Luanne
我不知道最好的方法.. getting节点和关系在单独的文件是最好的..? – sakar
对不起,我的坏。忽略我的问题,我误解了。 – Luanne