问题标签 [spark-graphx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 过滤包含不同案例类的集合
我已成功创建以下图表:
我的问题是,当它们是案例类时,如何过滤这些顶点属性?例如,如果我想过滤具有 BasketProperty 案例类作为其顶点属性且 Epoch 日期大于 1398900000 的顶点,我该怎么做?
我一直在尝试使用这样的东西:
但这显然是不正确的,因为 BasketProperty 不是 classthing 的成员。但是,我不知道如何进行。
apache-spark - Apache Spark 从字符串创建顶点
给定一个字符串
如何使用 Spark 以下列方式创建顶点?
“My-”、“yS”、“-Sp”、“Spa”、“par”、“ark”、“rk-”、“kA”、“-Ap”、“App”
这个问题可以并行化吗?
scala - 使用边/顶点输入文件在 GraphX 中创建图形时出错
在 Spark graphX 中运行以下用于创建图形的代码时出现错误。我通过以下命令通过 spark-shell 运行它: ./bin/spark-shell -i ex.scala
输入:
代码:
错误:
hadoop - Spark - 容器运行超出物理内存限制
我有一个由两个工作节点组成的集群。Worker_Node_1 - 64GB RAM Worker_Node_2 - 32GB RAM
背景摘要: 我正在尝试在 yarn-cluster 上执行 spark-submit 以在 Graph 上运行 Pregel 以计算从一个源顶点到所有其他顶点的最短路径距离并在控制台上打印值。实验:
- 对于具有 15 个顶点的小图,执行完成应用程序最终状态:成功
- 我的代码完美运行,并打印了 241 个顶点图的最短距离,将单个顶点作为源顶点,但存在问题。
问题: 当我深入研究日志文件时,任务在 4 分 26 秒内成功完成,但仍在终端上,它继续显示应用程序状态为正在运行,大约 12 分钟后任务执行终止说 -
我尝试过的事情:
- yarn.schedular.maximum-allocation-mb – 32GB
- mapreduce.map.memory.mb = 2048(以前是 1024)
- 尝试改变 --driver-memory 高达 24g
您能否为我如何配置资源管理器添加更多颜色,以便也可以处理大型图(> 300K 顶点)?谢谢。
scala - 如何基于属性在 RDD[(Long, Vertex)] 中的顶点之间创建链接?
我有一个用户:用户RDD[(Long, Vertex)]
集合。我想在我的 Vertex 对象之间创建链接。规则是:如果两个顶点在一个选定的属性中具有相同的值 - 称之为 prop1,则存在链接。
我的问题是如何检查同一集合中的每一对。如果我做:
我得到了一个RDD[RDD[Any]]
而不是一个RDD[(Long, Long)]
预期的图表工作
scala - 为什么 graph.degree 返回的值少于节点数
我在 Spark 中有一个使用 Graphx 的图表,例如:
结果是:
顶点数为 253,边数为 228
然后我 .cache() 网络并运行:
我最终拥有:
完成度数,我有 112 度值
所以我的问题是:为什么我没有为图中的每个节点提供学位结果?
scala - 如何使用 RDD 中另一个属性的值来检索一个属性的值
我有一个链接:JdbcRDD[String],其中包含以下形式的链接:
分别为每个链接的源和目标。我可以拆分每个字符串以检索唯一标识源节点和目标节点的字符串。然后我有一个 users:RDD[(Long, Vertex)] ,它包含我图中的所有顶点。每个顶点都有一个 nameId:String 属性和一个 nodeId:Long 属性。
我想从 stringId 中检索 nodeId,但不知道如何实现这个逻辑,在 Scala 和 Spark 中都是相当新的。我被这段代码困住了:
有了这个解决方案,我得到:
scala - 如何在Spark Cluster上执行一次将所有顶点作为源顶点的Pregel Shortest Path
我们的任务是使用 Pregel API 为 3lac 顶点找到最短路径。我们应该将每个顶点作为源顶点一次,并确定所有这些执行中的最短路径。我的代码如下所示,
}
从这段代码中,我必须从每个循环中读取最短路径,并从中确定最小值作为最终输出(这是未来的部分,我还没有编写相同的代码)。
现在这个当前代码适用于 15 节点图和 1112 节点图。但是当我尝试为 22k 节点图执行算法时,该算法针对 55 个源节点执行,然后因内存不足错误而停止。我们有一个两节点集群(1node - 64GB RAM,2node - 32GB RAM)
问题是,
1. 在 Spark 集群上如何处理 for 循环?我必须在代码中修改什么以优化代码吗?
2. 我正在尝试使用 unpersist 以便在每个循环中清除 RDD 并为每个循环创建新的。但是在执行 55 个节点后我仍然内存不足。应该怎么做才能对所有节点执行相同的操作?
scala - Spark的Graphx中调用mapTriplets方法时如何修改顶点数据
Spark 的 Graphx 中的 mapTriplets 操作可以将三元组转换为其他形式,如定义所述:
我的数据是一个稀疏的二分图,每次迭代都会更新一条边的顶点数据。例如,这里是一条边,和(srcAttr, dstAttr, attr)
的顶点将根据 进行修改。因此,我需要的是获取所有组合,并用于更新.srcAttr
dstAttr
attr
(srcAttr, dstAttr, attr)
attr
vertices
Graphx 提供了mapTriplets
可以转换所有 (srcAttr, dstAttr, attr) 组合的方法,但是我不知道在执行此方法时如何修改顶点。
那么,有没有什么策略可以在遍历所有边的时候修改顶点呢?