如何通过将Pregel消息数组与先前迭代中的数组合并来使用VertexColumn更新

问题描述

我正在尝试实现一个简单的消息传递系统以了解其工作原理。我的目标是将每个顶点的名称发送给父对象。理想的实现是将以前的实现创建的现有“ 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...