问题标签 [graphframes]

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.

0 投票
2 回答
915 浏览

apache-spark - 如何在 HDInsight 群集上的 SPARK 中使用图形框架

我已经在 HDInsight 上设置了一个 SPARK 集群,并且正在尝试使用本教程使用GraphFrames

我已经在集群创建期间使用了自定义脚本来启用 Spark 集群上的GraphX,如此处所述。

当我运行记事本时,

我收到以下错误

我尝试graphframes使用以下命令通过 Jupyter 从 spark 终端安装:

但我仍然无法让它工作。我是 Spark 和 HDInsight 的新手,所以有人可以指出我需要在这个集群上安装什么才能让它工作。

0 投票
4 回答
4587 浏览

pyspark - 导入 PySpark 包

我已经下载了graphframes包(从这里)并将其保存在我的本地磁盘上。现在,我想使用它。所以,我使用以下命令:

除了新graphframes包外,所有 pyspark 功能都按预期工作:每当我尝试import graphframes使用ImportError. 当我检查时sys.path,我可以看到以下两条路径:

/tmp/spark-1eXXX/userFiles-9XXX/graphframes_graphframes-0.1.0-spark1.5.jar/tmp/spark-1eXXX/userFiles-9XXX/graphframes-0.1.0-spark1.5.jar,但是这些文件不存在。而且,/tmp/spark-1eXXX/userFiles-9XXX/目录是空的。

我错过了什么?

0 投票
1 回答
547 浏览

apache-spark - GraphFrames api 是否支持创建二分图?

GraphFrames api 是否支持在当前版本中创建二分图?

当前版本:0.1.0

火花版本:1.6.1

0 投票
1 回答
201 浏览

apache-spark - 在 Spark 中创建复杂 Column 结构的快捷方式

我正在将一些Graph.pregel算法移植到GraphFrame.aggregateMessages. 我发现GraphFrameAPI 有点麻烦。

GraphAPI 中,我可以发送一个case class作为我的消息类型。但在GraphFrameAPI 中,aggregateMessages.sendToSrc可以.sendToDst使用 SQL 表达式StringColumn. 我发现这很强大,因为它是一个痛苦的屁股。

假设你有:

使用GraphXandpregel函数,我可以构建一个sendMsg返回的函数,Iterator[(VertexId,Send)]它可能类似于:Iterator((1L, Send(Vote(yay = true), from = 2L) ))

GraphFrames我必须构建一个与Column具有相同目的的Iterator[(VertexId,Send)],理想情况下不完全放弃我已经定义的case classes(比上面的示例更复杂)。

有什么捷径可以做到这一点?

到目前为止我得到了什么:

case class将 a 的实例转换为相应的结构非常容易。这主要让我到达那里:

这让我可以:

我必须稍微修补一下架构以使其正常工作,但在我开始这样做之前,我意识到这是一种完全没用的方法。您永远不会真正想将case class值转换为struct--ccToStruct(Send(Vote(true, 1L), 123L))创建一个非常无用的消息。它相当于发送一个lit(Send(..))值——除了lit()不支持案例类。

您想要做的是将lit值与AM.dst("*")AM.src("*")列混合和匹配,但这样做与case class. (我曾想过完全放弃案例类,但我有一个消息,只要我继续使用案例类,这种逻辑就很容易移植。UDAFsum

我相信答案是能够创建这样的结构:

然后将其转换为我的案例类的Column使用struct()和模式。

如果没有人有更好的方法来做到这一点(甚至可能有人这样做),我稍后会用解决方案回答我自己的问题。

0 投票
1 回答
2137 浏览

apache-spark - 查找特定节点的连接组件而不是整个图(GraphFrame/GraphX)

我在 Spark 中创建了一个 GraphFrame,该图当前如下所示:

基本上,会有很多这样的子图,其中每个子图都将相互断开。给定一个特定的节点 ID,我想在子图中找到所有其他节点。例如,如果给定节点 ID 1,则图将遍历并返回 2、10、20、3、30。

我创建了一个主题,但它没有给出正确的结果。

不幸的是,连通分量函数考虑了整个图。是否可以使用GraphFrame/GraphX在给定特定节点 ID 的情况下获取断开连接的子图中的所有节点?

0 投票
3 回答
1823 浏览

python - PySpark GraphFrame 的正确子图

graphframes是一个基于 PySpark DataFrames 的网络分析工具。以下代码是教程子图示例的修改版本:

与原始图相比,人们会期望新图g2将包含更少的节点和更少的边g。然而,这种情况并非如此:

给出输出:

很明显,结果图包含不存在节点的边。更令人不安的是g.degreesg2.degrees是相同的。这意味着至少有一些图形功能忽略了节点信息。有没有一种好方法可以确保仅使用提供的参数和参数GraphFrame的交集来创建图形?nodesedges

0 投票
1 回答
1923 浏览

python - 在 PySpark 中将 GraphFrames ShortestPath Map 转换为 DataFrame 行

我试图找到从 GraphFrames 函数 shortestPaths 获取 Map 输出并将每个顶点的距离映射展平为新 DataFrame 中的单独行的最有效方法。通过将距离列拉到字典中,然后从那里转换为熊猫数据框,然后再转换回 Spark 数据框,我已经能够非常笨拙地做到这一点,但我知道必须有更好的方法。

我想要的是获取上面的输出并拉平距离,同时将 id 保持为如下所示:

谢谢。

0 投票
1 回答
90 浏览

apache-spark - 如何编写一个转换函数来参考 Graphframe 对象来转换 RDD?

我有一个 Graphframe 对象:g 和一个 RDD 对象:候选:

我想在 Candidate_rdd 中计算从“源”到“目标”的路径,并使用图框的广度优先搜索生成带有键、值对 ((source, target), path_list) 的结果 rdd,其中 path_list 是来自源的路径列表达到目标。

示例输出:

我写了以下函数:

我收到了这个错误:

我试图使图表全球化或广播它,但都不起作用。

有人可以帮我吗?

非常感谢!!

0 投票
1 回答
908 浏览

java - 与 Spark Graphframe bfs 相关的 java.lang.OutOfMemoryError

我以这种方式调用 bfs 20 多次后出现 OutOfMemoryError:

从日志中,我可以看到 bfs 创建了很多广播变量并试图清除它们。我想知道广播变量的清除是否没有完全完成?我在下面附上了最新的错误消息。谢谢!

在内存中(大小:8.1 KB,免费:3.0 GB)

0 投票
0 回答
373 浏览

apache-spark - 如何在火花图框中合并“流通”边缘

是否可以使用 Spark GraphFrames 实现以下图形算法?

给定一个图,我想删除恰好具有一条传入边和一条传出边的节点,并将两条边合并为一条边。例如,假设我们有:

预合并

然后图形简化算法将删除中间的两个节点(并合并边并将 1、8、3 的权重加起来为 12)。同样,对于右上角部分,将两条边合并为一条(并将边权重 2 和 1 加到 3 中)

合并后

我在这里找到了使用 networkx 的类似解决方案: Remove all nodes in a networkx DiGraph with in-degree and out-degree equal to 1

但是我不能使用networkx,因为我的图非常大,所以我想看看是否可以使用Spark GraphFrames 来实现它