问题描述
我正在尝试实现一个简单的消息传递系统以了解其工作原理。我的目标是将每个顶点的名称发送给父对象。理想的实现是将以前的实现创建的现有“ iterationMsg”数组合并到具有这些值的新数组中。我已经使用与信念传播相同的逻辑,使用AggregateMessages函数实现了这一点,但是我愿意使用Pregel API来实现。如何在“ iterationMsg”中现有数组的位置处引用“ iterationMsg”中的数组?
v = sqlc.createDataFrame([
(0,"Anna",24),(1,"Bob",26),(2,"Charlie",27),(3,"David",(4,"Eric",],["id","name","age"])
# Edge DataFrame
e = sqlc.createDataFrame([
(0,1,"friend"),2,"loves"),"pays"),(5,3,"boss"),(6,4,(7,"boss")
],"src","dst","label"])
g = GraphFrame(v.withColumn('state',f.lit(True)).withColumn('iterationMsg',f.array()),e)
NR_ITER = 2
msgpassing = g.pregel \
.setMaxIter(NR_ITER) \
.withVertexColumn("iterationMsg",f.array(),f.array_union('existing array in iterationMsg',Pregel.msg())) \
.sendMsgToSrc(f.when(Pregel.dst('state'),f.array_union(f.array(Pregel.dst('name')),Pregel.dst('iterationMsg')))) \
.aggMsgs(f.array(Pregel.msg())) \
.run()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)