pySpark v3.0.1 的图框

graphframes for pySpark v3.0.1

我正在尝试将 graphframes 库与 pySpark v3.0.1 一起使用。 (我在 debian 上使用 vscode 但尝试从 pyspark shell 导入包也没有用)

根据 documentation,使用 $ pyspark --packages graphframes:graphframes:0.6.0-spark2.3-s_2.11 我应该可以使用它。

此示例代码取自 Whosebug 中提出相同问题的另一个 ,尽管它的解决方案对我没有帮助。

localVertices = [(1,"A"), (2,"B"), (3, "C")]

localEdges = [(1,2,"love"), (2,1,"hate"), (2,3,"follow")]

v = sqlContext.createDataFrame(localVertices, ["id", "name"])

e = sqlContext.createDataFrame(localEdges, ["src", "dst", "action"])

g = GraphFrame(v, e)

抛出错误

py4j.protocol.Py4JJavaError: An error occurred while calling o63.createGraph.

java.lang.NoSuchMethodError: 'scala.collection.mutable.ArrayOps scala.Predef$.refArrayOps(java.lang.Object[])'

您需要为 Spark 3.0 使用正确的 graphframes 版本。您使用了 Spark 2.3 (0.6.0-spark2.3-s_2.11) 的 graphframes,导致 Spark 版本冲突。可以试试0.8.1-spark3.0-s_2.12,目前是Spark 3.0.

的最新版graphframes
pyspark --packages graphframes:graphframes:0.8.1-spark3.0-s_2.12