Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于apache-spark-graphx的三维力有向图节点坐标计算_Apache Spark_Spark Graphx - Fatal编程技术网

基于apache-spark-graphx的三维力有向图节点坐标计算

基于apache-spark-graphx的三维力有向图节点坐标计算,apache-spark,spark-graphx,Apache Spark,Spark Graphx,有人知道Apache Spark GraphX的力导向三维图算法的任何实现吗 我得到了一个必须可视化的图形,为了快速渲染,我想计算apache spark graphx中每个图形节点的3d坐标,然后将这些坐标作为输出传递给应用程序的渲染模块 到目前为止,我只知道d3.js库可以提供这样的图形3d渲染,但它们非常有限,工作方式与我的需要完全相反——这些库使用图形节点和链接,并在javascript中实现所有坐标演算,这使得它对任何大量数据都毫无用处(如果图形超过100k节点)。目标是找到一些算法或

有人知道Apache Spark GraphX的力导向三维图算法的任何实现吗

我得到了一个必须可视化的图形,为了快速渲染,我想计算apache spark graphx中每个图形节点的3d坐标,然后将这些坐标作为输出传递给应用程序的渲染模块

到目前为止,我只知道d3.js库可以提供这样的图形3d渲染,但它们非常有限,工作方式与我的需要完全相反——这些库使用图形节点和链接,并在javascript中实现所有坐标演算,这使得它对任何大量数据都毫无用处(如果图形超过100k节点)。目标是找到一些算法或库,该算法或库提供了一种在Spark自身内计算3d空间中每个节点坐标的方法,从而在Spark内留下大量计算,只向渲染模块暴露位置数组{nodeID,x,y,z}

在我的例子中,图的每条边实际上是一个方向力(例如,从nodeA到nodeB的力a值为4,从nodeB到nodeA的力B值为2.1…)。算法的思想是执行以下操作:

  • 从外部源预加载图形数据。此数据包括节点ID和方向链接(力值)
  • 在计算开始之前:每个节点被分配一些随机的三维坐标初始值(x,y,z),最小差值(delta)被定义为常数,最小移动距离(步长)也被定义为常数
  • 算法执行一组迭代计算,并为图形坐标{nodeID,x,y,z}的每个节点计算一组坐标:对于每个节点和一组节点的力(入站和出站),它为一个节点找到所有这些力的结果向量,并通过步骤将节点单独移动到此向量
  • 一旦所有节点的新坐标距离上一次迭代的坐标小于delta,迭代就会停止
我知道,我上面的描述并不理想,可能看起来不清楚,但是,可能观众中有人遇到了一些足够接近的东西来尝试。如果您能就使用ApacheSpark GraphX实现此类功能提供任何建议,并参考任何类似的项目/存储库,我们将不胜感激