问题标签 [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 投票
0 回答
405 浏览

python - GraphFrames 连接组件 - 组件零

当我在 GraphFrames 上运行连接组件算法时,有一个巨大的组件,组件 ID 为零 - 0。

那个组件是什么?

0 投票
1 回答
661 浏览

python - 为什么 --packages 命令让 python 包不可用或无法从 Spark 客户端/驱动程序加载?

我想添加graphframes library.Normaly这个库是由(例如)添加的:

然后你应该得到类似的东西:

我可以导入图框:>>>import graphframes

当我执行 spark-submit test.py 时出现问题,其中 test.py 是:

我得到以下异常:

我认为问题与 --packages 有关,它不能使 python 包可用或可从 Spark 客户端/驱动程序加载。

而且我认为应该将图框添加到 python path 。

1-如何解决这个问题?

  1. 如何在 Windows 和 Linux 中应用 1) 中提出的解决方案?

我尝试了以下方法:

  • 下载graphframes jar
  • 提取 JAR 内容
  • 导航到“graphframe”目录并压缩其中的内容。
  • 将生成的 zip 复制到我的主目录:/home/tam/

在 .bashrc 我设置:

spark-submit test.py,我收到以下错误:

0 投票
1 回答
64 浏览

scala - 如何将一个数据集的列(也包括多列)中的值映射到另一个数据集

我正在处理图框部分,我需要在 d3.js 中有边/链接,以便在顶点/节点的索引值中作为源和目标。

现在我VertexDF

EdgesDF

现在我需要将其转换EdgesDF如下

所有列值都应该具有取自VertexDF.I 的名称索引。我期待在Higher-order functions. 我的方法是转换VertexDF为地图,然后迭代EdgesDF并替换每一次出现。

我试过的

将名称映射到 ids

用那张地图EdgesDF

0 投票
0 回答
73 浏览

scala - 如何修复错误:使用 Scala API 创建图框时的类型不匹配

我使用 Spark2.3.2 和 GraphFrames 0.7.0。
我有两个数据框:node2attrDf并且edge2attrDf,生成它们的代码如下:https ://gist.github.com/superPershing/56928c4f5420ea6334d7a9f6e389bda5

他们的架构是这样的:

当我使用两个数据框创建新的图框时:

发生错误:

似乎找到的类型和所需的类型是相同的。那么为什么会发生这个错误以及如何解决呢?

0 投票
2 回答
563 浏览

apache-spark - 寻找不直接连接的2个顶点之间的路径

我有一个像这样的连接图

其中 user 是属性名称,并遵循该特定用户的路径。例如对于

现在,我想找到从 A 到达 E 的所有用户。输出应该是 user2、user3、user4(因为所有这些用户最终从 A 到达 E,不管他们走了多少跳)。我该如何写这个主题。这是我尝试过的。

但是我遇到了这样的例外

我不确定我的情况是否正确或如何 spark.sql.crossJoin.enabled=true在 spark-shell 上设置此属性

我按如下方式调用了我的 spark-shell

0 投票
1 回答
1884 浏览

python - Expand array Column of PySpark DataFrame

I am having of transferring a DataFrame into a GraphFrame using the data below. Let's consider a column of Authors in a dataframe containing an array of Strings like the one below:

In the data table, we have a list of authors who collaborated together on the same paper. Now I want to expand the second column into a new dataframe containing the following structure:

I tried to use the explode function, but that only expands the array into a single column of authors and I lose the collaboration network.

Can some please tell me how to go around this?

0 投票
1 回答
413 浏览

apache-spark - 对 Spark/Graphx/Pregel 示例程序的停止条件感到困惑,以查找“路径距离”

'

我正在通过 Graphx In Action 工作,这本书(源代码在这里:https ://github.com/insidectm/spark-graphx-in-action )讨论了两种计算距离的方法(边缘跳数) 在树的根和所有节点到叶子之间。我了解使用 aggregateMessages 提供的代码示例。特别是,停止条件是有意义的(我通过包含文本“停止条件”的注释突出显示了该条件,如下。)一旦图形顶点上的属性停止变化,继续运行算法。

当我查看 Pregel 计算相同结果的方式时,我有点困惑(如下所示。)

特别是在调用 Pregel 的 apply 方法时,maxIterations 是默认值,即 Integer.MAX_VALUE(出于所有实际目的,“永远运行”。)因此,“sendMsg”函数似乎是:

将被无限调用,即使在顶点上的值已经收敛之后。

是否有一些我忽略的机制导致程序在收敛后停止?

0 投票
1 回答
284 浏览

pyspark - ImportError:无法从“graphframes.lib”导入名称“Pregel”

我正在使用来自 jupyter 的 pyspark 和 graphframes。我能够成功导入 pyspark 和 graphframes,但是当我尝试时:

我收到以下错误:

这篇文章是我如何让 graphframes 工作,但没有 graphframes.lib:

https://github.com/graphframes/graphframes/issues/104

我尝试重复上述命令,没有环境行,因为 pyspark 在 jupyter 中对我来说工作得很好,使用不同的版本并且能够获取 graphframes.lib,但没有 Pregel:

现在我可以看到graphrames.lib 目录,但里面只有aggregate_messages.py。

最后,我尝试了以下但收到 404 错误:

我希望,因为我能够导入图形框架,所以我能够从 graphframes.lib 导入 Pregel。似乎在我的版本中,现在是 0.6.0,有一个 graphrames.lib 但没有 Pregel,并且还没有用于 graphframes 的 0.7.0 版本。

0 投票
1 回答
607 浏览

apache-spark - 如何将图框添加到 Apache Zeppelin

我正在尝试将 Apache Zeppelin 上的 graphframes 库与 Spark(pyspark)解释器一起使用,但是,我不断收到错误消息: ModuleNotFoundError: No module named 'graphframes'每当我尝试使用from graphframes import *.

我尝试--packages 'graphframes:graphframes:0.7.0-spark2.4-s_2.11'在 zeppelin-env.sh 文件中添加指令,尝试使用该z.load('graphframes:graphframes:0.7.0-spark2.4-s_2.11')函数,并尝试在解释器设置中添加图形框架作为依赖项,但是,这些尝试都没有奏效。

我还尝试将 Spark 存储库添加到 Zeppelin,然后将图形框架的 maven 坐标添加到 zeppelin 上的依赖项部分下的解释器。但是,这也不起作用。

我在 EMR 集群上托管的 zeppelin 0.8.1 上使用带有 scala 2.11 的 spark 版本 2.4。

我可以使用上面提到的 pyspark 和 --packages 指令从终端使用图形框架,所以这似乎是一个与 zeppelin 相关的问题。

我不知道我还能做什么。关于如何让图形框架在 zeppelin 上工作的任何想法?

0 投票
2 回答
1362 浏览

apache-spark - 如何在 AWS EMR 上使用带有 pyspark 的图框?

我正在尝试在 AWS EMR 上的 Jupyter Notebook 中使用 pyspark 中的graphframes包(使用 Sagemaker 和 sparkmagic)。在 AWS 控制台中创建 EMR 集群时,我尝试添加配置选项:

但是当我尝试在 jupyter notebook 的 pyspark 代码中使用 graphframes 包时,我仍然遇到错误。

这是我的代码(来自graphframes示例):

这是输出/错误:

我通读了这个 git 线程,但所有潜在的解决方法似乎都非常复杂,需要通过 ssh 连接到 EMR 集群的主节点。