我正在处理一个由不同类型的标签组成的大型图,这些标签有它们自己的属性。
CALL gds.graph.create(
'derin',
{
Transaction: {
label: 'Transaction',
properties: {legacy_customer: {defaultValue: 0}
, trx_amount: {defaultValue: 1000}
, atm_trx: {defaultValue: 0}
, fast_credit_flag: {defaultValue: 0}
, silver_bullet_flag: {defaultValue: 0}
}
}
, Withdraw: {
label: 'Withdraw',
properties: {legacy_customer: {defaultValue: 0}
, trx_amount: {defaultValue: 1000}
, atm_trx: {defaultValue: 0}
, fast_credit_flag: {defaultValue: 0}
, silver_bullet_flag: {defaultValue: 0}
}
}
, Loan: {
label: 'Loan',
properties: {legacy_customer: {defaultValue: 0}
, trx_amount: {defaultValue: 1000}
, atm_trx: {defaultValue: 0}
, fast_credit_flag: {defaultValue: 0}
, silver_bullet_flag: {defaultValue: 0}
}
}
, Customer: {
label: 'Customer',
properties: {legacy_customer: {defaultValue: 0}
, trx_amount: {defaultValue: 1000}
, atm_trx: {defaultValue: 0}
, fast_credit_flag: {defaultValue: 0}
, silver_bullet_flag: {defaultValue: 0}
}
}}, {
SENDS: {type: 'SENDS', orientation: 'UNDIRECTED'},
RECEIVES: {type: 'RECEIVES', orientation: 'UNDIRECTED'},
INSPECTS: {type: 'INSPECTS', orientation: 'UNDIRECTED'},
WITHDRAWS: {type: 'WITHDRAWS', orientation: 'UNDIRECTED'},
APPLIES: {type: 'APPLIES', orientation: 'UNDIRECTED'}
})
由于缺少属性,我创建了一个具有默认值的图形。创建后,我正在运行查询;
CALL gds.fastRP.write('derin'
,{
embeddingDimension: 32,
writeProperty: 'fast_embedding',
propertyRatio: 0.2,
featureProperties: ['legacy_customer', 'trx_amount', 'atm_trx', 'fast_credit_flag', 'silver_bullet_flag']
}
)
我收到错误消息“无法调用过程gds.fastRP.write:错误原因:java.lang.非法参数异常:UnionProperties必须全部具有相同的类型,但找到[LONG,DOUBLE,DOUBLE,DOUBLE]"。如有任何帮助或建议,我们将不胜感激。谢谢。
2条答案
按热度按时间kzipqqlq1#
我能够使用Neo4j版本模拟您的问题:4.2.3与GDS:1.8.3
我创建了下面的节点,它抱怨数据类型LONG和DOUBLE不一致。
我建议您运行查询并扫描,一次尝试一个featureProperties。(我知道这很乏味!)然后运行下面的查询,找出哪些节点是LONG(整数)。查询可能会运行很长时间,所以我会让您对它进行微调。
ntjbwcob2#
感谢@jose_bacoy,我的答案是从bacoy的响应中得到启发的。
对所有标签重复此操作。我发现事务标签存在一些缺失值(空值、trx_amount)。非缺失值均为浮点型。因此,我使用浮点型默认值(1000.0而不是1000)更新了图形创建查询,如下所示:
这解决了我的问题。