Neo4j python驱动程序:匹配数十万个节点并返回数据帧块
我有一个函数查询,它以列表的形式返回我的结果。我还能够将数据加载到数据帧中。我想知道是否有可能将数十万个节点属性分块加载到单个数据帧中,或者并行化match和return语句。我查看了apoc.periodic.iterate,但它似乎只返回已处理的行数,并且需要更新节点。我只希望以块的形式返回节点属性信息。我要做的是写入csv文件;你可以在那之后进口。另一种方法是使用Neo4j python驱动程序:匹配数十万个节点并返回数据帧块,python,neo4j,neo4j-apoc,Python,Neo4j,Neo4j Apoc,我有一个函数查询,它以列表的形式返回我的结果。我还能够将数据加载到数据帧中。我想知道是否有可能将数十万个节点属性分块加载到单个数据帧中,或者并行化match和return语句。我查看了apoc.periodic.iterate,但它似乎只返回已处理的行数,并且需要更新节点。我只希望以块的形式返回节点属性信息。我要做的是写入csv文件;你可以在那之后进口。另一种方法是使用from io import StringIO绕过对文件的写入。 def query(text_query, driver, d
from io import StringIO
绕过对文件的写入。
def query(text_query, driver, db = None):
try:
session = driver.session(database=db)
response = list(session.run(text_query))
except Exception as e:
print("Query failed:", e)
finally:
if session is not None:
session.close()
return response
text = "MATCH (n:technique) WHERE exists(n.embedding_vector) RETURN DISTINCT n.common_ds_cafe_id, n.embedding_vector"
tech_dtf_data = pd.DataFrame([dict(_) for _ in query(text, db='neo4j', driver = driver)])
tech_dtf_data['label'] = 'technique'
print("Techniques loaded:", tech_dtf_data.shape)