目前有需求需要对neo4j中的数据进行分析(一般是读到内存后跑脚本或者使用spark跑分布式),这里介绍一种较为简单和通用的方法。
定义Cypher语句
我们先写两个查询Cypher语句,目的是把我们要读取的数据的字段挑选出来。
# 1
MATCH (n) RETURN id(n) as id, labels(n) as labels
第一个语句,我们返回所有节点的id和标签数据。这里并没有返回所有属性,是因为我们后续的分析过程暂时不需要。
# 2
MATCH (a)-[r]->(b) RETURN id(a) as a_id, r.funded_amount, r.funded_rate, type(r), id(b) as b_id
第二个语句,我们返回所有的关系,同时还有起始节点、结束节点的id,还有关系的属性和类型。
我们这里用企业图谱的数据举例子,就是企业投资的金额和股权的占比。
使用py2neo连接
使用py2neo连接neo4j,然后查询并返回数据。
from py2neo import Graph
import pandas as pd
cypher_1 =