algorithm - 与Java等效的Pregel API上的Spark代码

原文 标签 algorithm apache-spark graph spark-dataframe spark-graphx

我在一个Graph<Row,Row>格式的图上写pregel,它在scala中有顶点计算参数

(_,a,b) => a+b

我正试图将其转换为Java函数,该函数的签名为
Function3<Object, VD, A, VD> arg4

我知道VD是行类型的,A是聚合消息,但是Java中的返回类型是什么,因为在特定的顶点重新计算,它应该是可变的?
new Function3<Row, Double, Row, Row>() {
        private static final long serialVersionUID = 1L;

        public Row call(Row arg0, Double arg1, Row arg2) throws Exception {
            // TODO Auto-generated method stub

        }

对吗?

最佳答案

是的,您使用Function3是正确的,根据这个签名-(_,a,b) => a+b,您必须忽略第一个参数并添加最后两个参数,但是您的签名public Row call(Row arg0, Double arg1, Row arg2)是错误的,arg2必须具有Double类型,更改为:

new Function3<Row, Double, Double, Row>()

在这里忽略第一个参数行,然后添加第二个和第三个参数行并将其包装为返回类型行。

相关文章:

c++ - 多个数组段的最小平均值

java - 组-从数据框的2列进行计数-Spark Java

python - 相当于窗口的Spark rangeBetween的Python?

c++ - 散列模板类型

algorithm - 图的邻接表表示的空间复杂度

javascript - 如何检查没有链接的节点的d3 js强制图并将其删除?

javascript - Rubik´Cube加扰算法-JavaScript

algorithm - 混合数据结构对效率的好处

algorithm - 汇编中的x86上带符号的64位乘法和128位除法

java - 使用下划线将数据集火花到Java对象映射字段