PySpark 3.4.0读取Excel文件报错:找不到com.crealytics.spark.excel数据源
解决PySpark读取Excel时找不到
com.crealytics.spark.excel数据源的问题 问题原因
出现ClassNotFoundException是因为PySpark默认不包含Excel读取的第三方依赖,com.crealytics.spark.excel是社区提供的数据源插件,必须手动添加对应依赖包才能启用。
解决方法
方法一:启动PySpark时通过参数引入依赖
在终端启动PySpark时直接指定依赖包版本(版本需匹配你的PySpark 3.4.x和Scala版本,PySpark 3.4默认适配Scala 2.12):
pyspark --packages com.crealytics:spark-excel_2.12:3.4.2_0.18.0
如果是提交脚本,用以下命令:
spark-submit --packages com.crealytics:spark-excel_2.12:3.4.2_0.18.0 your_script.py
方法二:在代码中配置SparkSession时添加依赖
无需每次启动都加参数,直接在创建SparkSession时配置依赖:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .config("spark.jars.packages", "com.crealytics:spark-excel_2.12:3.4.2_0.18.0") \ .getOrCreate() spark_df = spark.read.format("com.crealytics.spark.excel") \ .option("inferSchema", "true") \ .option("header", "true") \ .load("c.xlsx") spark_df.show()
方法三:手动下载jar包放入Spark目录
- 下载对应版本的
spark-exceljar包及相关依赖(如poi-ooxml) - 将jar包复制到Spark安装目录下的
jars文件夹 - 重启PySpark或Spark服务后即可正常使用
验证
依赖配置完成后,重新运行代码,若不再抛出异常且能正常显示Excel数据,说明配置生效。
内容的提问来源于stack exchange,提问作者Dora Xplora
相关产品推荐
相关产品推荐

