问题标签 [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.
apache-spark - 如何在 HDInsight 群集上的 SPARK 中使用图形框架
我已经在 HDInsight 上设置了一个 SPARK 集群,并且正在尝试使用本教程使用GraphFrames。
我已经在集群创建期间使用了自定义脚本来启用 Spark 集群上的GraphX,如此处所述。
当我运行记事本时,
我收到以下错误
我尝试graphframes
使用以下命令通过 Jupyter 从 spark 终端安装:
但我仍然无法让它工作。我是 Spark 和 HDInsight 的新手,所以有人可以指出我需要在这个集群上安装什么才能让它工作。
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/
目录是空的。
我错过了什么?
apache-spark - GraphFrames api 是否支持创建二分图?
GraphFrames api 是否支持在当前版本中创建二分图?
当前版本:0.1.0
火花版本:1.6.1
apache-spark - 在 Spark 中创建复杂 Column 结构的快捷方式
我正在将一些Graph.pregel
算法移植到GraphFrame.aggregateMessages
. 我发现GraphFrame
API 有点麻烦。
在Graph
API 中,我可以发送一个case class
作为我的消息类型。但在GraphFrame
API 中,aggregateMessages.sendToSrc
可以.sendToDst
使用 SQL 表达式String
或Column
. 我发现这很强大,因为它是一个痛苦的屁股。
假设你有:
使用GraphX
andpregel
函数,我可以构建一个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
. (我曾想过完全放弃案例类,但我有一个消息,只要我继续使用案例类,这种逻辑就很容易移植。UDAF
)sum
我相信答案是能够创建这样的结构:
然后将其转换为我的案例类的Column
使用struct()
和模式。
如果没有人有更好的方法来做到这一点(甚至可能有人这样做),我稍后会用解决方案回答我自己的问题。
apache-spark - 查找特定节点的连接组件而不是整个图(GraphFrame/GraphX)
我在 Spark 中创建了一个 GraphFrame,该图当前如下所示:
基本上,会有很多这样的子图,其中每个子图都将相互断开。给定一个特定的节点 ID,我想在子图中找到所有其他节点。例如,如果给定节点 ID 1,则图将遍历并返回 2、10、20、3、30。
我创建了一个主题,但它没有给出正确的结果。
不幸的是,连通分量函数考虑了整个图。是否可以使用GraphFrame/GraphX在给定特定节点 ID 的情况下获取断开连接的子图中的所有节点?
python - PySpark GraphFrame 的正确子图
graphframes是一个基于 PySpark DataFrames 的网络分析工具。以下代码是教程子图示例的修改版本:
与原始图相比,人们会期望新图g2
将包含更少的节点和更少的边g
。然而,这种情况并非如此:
给出输出:
很明显,结果图包含不存在节点的边。更令人不安的是g.degrees
和g2.degrees
是相同的。这意味着至少有一些图形功能忽略了节点信息。有没有一种好方法可以确保仅使用提供的参数和参数GraphFrame
的交集来创建图形?nodes
edges
python - 在 PySpark 中将 GraphFrames ShortestPath Map 转换为 DataFrame 行
我试图找到从 GraphFrames 函数 shortestPaths 获取 Map 输出并将每个顶点的距离映射展平为新 DataFrame 中的单独行的最有效方法。通过将距离列拉到字典中,然后从那里转换为熊猫数据框,然后再转换回 Spark 数据框,我已经能够非常笨拙地做到这一点,但我知道必须有更好的方法。
我想要的是获取上面的输出并拉平距离,同时将 id 保持为如下所示:
谢谢。
apache-spark - 如何编写一个转换函数来参考 Graphframe 对象来转换 RDD?
我有一个 Graphframe 对象:g 和一个 RDD 对象:候选:
我想在 Candidate_rdd 中计算从“源”到“目标”的路径,并使用图框的广度优先搜索生成带有键、值对 ((source, target), path_list) 的结果 rdd,其中 path_list 是来自源的路径列表达到目标。
示例输出:
我写了以下函数:
我收到了这个错误:
我试图使图表全球化或广播它,但都不起作用。
有人可以帮我吗?
非常感谢!!
java - 与 Spark Graphframe bfs 相关的 java.lang.OutOfMemoryError
我以这种方式调用 bfs 20 多次后出现 OutOfMemoryError:
从日志中,我可以看到 bfs 创建了很多广播变量并试图清除它们。我想知道广播变量的清除是否没有完全完成?我在下面附上了最新的错误消息。谢谢!
在内存中(大小:8.1 KB,免费:3.0 GB)
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 来实现它