pyspark 使用graphdataframes踩坑记
- 报错ModuleNotFoundError: No module named 'graphframes'
- 接着报错java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI
- 官方网链接无法下载graphframes-xxx.jar包
- 如果运行时报错java.lang.ClassNotFoundException: com.typesafe.scalalogging.slf4j.LazyLogging
- 如果运行时再报错java.lang.ClassNotFoundException: com.typesafe.scalalogging
- 注意下载的小版本号要一致,否则会有问题。
pyspark 没有集成graphX包,只能使用第三方的graph打他frames,虽然完全具备graphx的功能,但是第一次进行安装,很容易踩坑。笔者踩坑1-2天,终于爬了起来!
报错ModuleNotFoundError: No module named ‘graphframes’
ModuleNotFoundError Traceback (most recent call last)
in
1 from pyspark.sql import SparkSession
2 from pyspark.sql import SQLContext
----> 3 from graphframes import *
4 from pyspark.sql.types import *
5
ModuleNotFoundError: No module named ‘graphframes’
解决办法:下载与spark版本一致的graphdataframes源码包
放到python所在的site-packages目录下
下载网址:
https://spark-packages.org/package/graphframes/graphframes

选择zip下载,注意必须要跟spark的版本号一致。下载后解压,把pyhon目录下的整个包拷贝到python解释器下的lib->site-packages(替换成你本机的python所在路径)


接着报错java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI
因为缺少graphframes-xxx.jar包,下载jar包
官方网链接无法下载graphframes-xxx.jar包
无论使用mvn下载,还是使用repo搜索都无法下载所需要的jar包。踩坑了很久,最后竟然是下载jar包的网站http://dl.bintray.com/关闭,而官方的网站jar包下载链接没有更新。所以从这个https://repos.spark-packages.org/网址下载成功。参照如下的格式修改所需要下载的版本号即可。
http://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11.jar
由于http://dl.bintray.com/网站已经关闭,但是官网的jar下载链接还没有更新。需要修改下载路径为:
https://repos.spark-packages.org/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11.jar
jar包加载的方法:
可以通过pyspark --jars 方式加载,也可以拷贝到pyspark目录下,重启pyspark。
笔者采用第二种方法
D:\spark-2.4.7-bin-hadoop2.7\jars
注意替换D:\spark-2.4.7-bin-hadoop2.7为你本机的spark路径。
如果运行时报错java.lang.ClassNotFoundException: com.typesafe.scalalogging.slf4j.LazyLogging
需要下载scala-logging_xxx.jar
如果运行时再报错java.lang.ClassNotFoundException: com.typesafe.scalalogging
需要下载scala-logging-slf4j_xxx.jar
注意下载的小版本号要一致,否则会有问题。

笔者把spark2.4版本配套的包上传,可以进行下载。https://download.youkuaiyun.com/download/sunseaxhj/18770012
本文记录了在使用PySpark集成GraphFrames时遇到的错误及解决过程。首先遇到`ModuleNotFoundError: No module named 'graphframes'`,解决方法是下载与Spark版本一致的GraphFrames源码包并放入Python的site-packages目录。接着出现`java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI`,解决这个问题需要从特定网址下载graphframes-xxx.jar并添加到Spark的jars目录。最后,如果出现关于`scala-logging`的ClassNotFoundException,需要下载对应的jar包。文章提供了所有所需jar包的下载链接和加载方法。
333

被折叠的 条评论
为什么被折叠?



