pyspark实例化GraphFrame出现 java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI问题

如标题所言,创建GraphFrame,会出现
Py4JJavaError: An error occurred while calling o138.loadClass.
: java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI
这个问题
在这里插入图片描述
在国内搜了半天没见有用的解决方案,最后在stackoverflow上找到了

首先在cmd上启动pyspark
这里有一个小度量,第一次使用参数启动pyspark,以便它下载所有graphframe的jar依赖项,很多教程启动的时候并没有指定依赖包,这可能会发生错误: (根据你的spark版本去graphframe官网找到对应的下载命令)

pyspark --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11 --jars graphframes-0.5.0-spark2.1-s_2.11.jar

这应该出现:
在这里插入图片描述
意味着它已经下载了所需的所有依赖项。此处重要的是将Ivy Default Cache设置为:C盘/用户/.ivy2/cache,恰好是存储在C盘/用户/.ivy2/jars中的jar。

现在,需要将C盘/用户/.ivy2/jars中出现的所有jar都复制到spark的jars目录中:
在这里插入图片描述
第二次启动pyspark:

pyspark --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11 --jars graphframes-0.5.0-spark2.1-s_2.11.jar

这应该出现:
在这里插入图片描述
现在可以享受GraphFrame了:

WDNMD,大家都是第一次玩GraphFrame,凭什么我就要承受这么多
在这里插入图片描述

原创文章 20 获赞 14 访问量 2166

猜你喜欢

转载自blog.csdn.net/qq_42166929/article/details/105983616