neo4j - Neo4j 中用于 GDS 计算的图形生成
问题描述
我正在处理一个结构类似于以下内容的 CSV 文件:
aId, Amount, bId
int, float, int
这里 aId 和 bId 分别对节点 A 和 B 有约束。在最初加载节点和关系时,
LOAD CSV with headers FROM 'file:///abc.csv' as row
MERGE (a: A {aid: toInteger(row.aID)})
MERGE (b: B {bid: toInteger(row.bID)})
CREATE (a)-[:HAS_SENT {amt: toFloat(row.Amount)}]->(b)
有 1490 个标签和 1299 个关系。
现在我希望使用不同的图形数据科学库对文件执行各种计算。为了对此进行投影,我使用CALL gds.graph.create.estimate(['A'],['HAS_SENT'])
返回的 851 个节点和 1299 个关系估计了相同的结果。
但是,当我尝试创建图表时CALL gds.graph.create('mySampleGraph',['A'],['HAS_SENT'])
,它返回了相同数量的节点,但关系为 0。
我错过了什么,我怎么可能得到正确的映射?
解决方案
从您的导入查询来看,您的关系仅存在于节点 A 和 B 之间。标记为 A 的节点之间没有关系。通常,仅加载节点投影部分中描述的同时具有源节点和目标节点的关系。在您的情况下,不存在同时具有标签 A 的源节点和目标节点的关系。如果您同时加载标签 A 和 B,则 GDS 应加载所有关系。
CALL gds.graph.create('mySampleGraph',['A', 'B'],['HAS_SENT'])
顺便说一句...有什么特别的理由有两个标签而不是一个标签吗?
推荐阅读
- python - PyQt5。如何在与 ContextMenu 连接的 QTextEdit 中获取光标位置?
- angularjs - 无法在angularjs中显示json数据
- javascript - expressJS 上的异步函数
- .htaccess - 从站点上的特定文件夹中删除 HTTPS
- java - 没有嵌套评估时,Eclipse“无法执行嵌套评估”错误
- asp.net-web-api - 使用 FluentValidation 进行更深入的数据库验证是不好的做法吗?
- android - 如何在 WebView 中显示本地 html?
- vba - 运行时错误“-2147352567(80020009)”:无法解析条件。"SQL="urn:schemas:httpmail:datereceived" 处出错..."
- c# - DataGrid 未填充
- angularjs - 当列具有布尔值和未定义值时,如何在 ng-grid 中自定义排序?