Neo4j 中用于 GDS 计算的图形生成
Graph generation in Neo4j for GDS computations
我正在处理一个 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'])
顺便说一句...有两个标签而不是一个标签的具体原因吗?
我正在处理一个 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'])
顺便说一句...有两个标签而不是一个标签的具体原因吗?