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
我正在尝试将 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.
的最新版graphframespyspark --packages graphframes:graphframes:0.8.1-spark3.0-s_2.12