在Databricks中用PySpark读取Excel文件报错及安装问题求助
解决Spark Excel数据源找不到及pip安装失败的问题
问题根源
你用pip install com.crealytics:spark-excel_2.12:0.13.1失败,是因为这个格式是Spark的Maven依赖坐标,不是PyPI上的Python包格式,pip无法识别这种格式。而Failed to find data source: com.crealytics.spark.excel是因为Spark没有加载到处理Excel的依赖包。
解决方法
1. 本地/单机PySpark环境
- 启动时指定依赖
直接在启动pyspark的命令里通过--packages参数加载依赖:pyspark --packages com.crealytics:spark-excel_2.12:0.13.1 - 代码中配置依赖
在初始化SparkSession时添加依赖配置:from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("ExcelProcessing") \ .config("spark.jars.packages", "com.crealytics:spark-excel_2.12:0.13.1") \ .getOrCreate()
2. 集群环境(考虑权限限制)
如果没有权限直接通过--packages拉取依赖,可以用以下方式:
- 手动上传Jar包
先下载对应版本的spark-excelJar包(注意匹配你的Spark使用的Scala版本,比如_2.12对应Scala 2.12),上传到集群所有节点的Spark jars目录(如$SPARK_HOME/jars),或者上传到HDFS公共路径。然后提交作业时指定Jar包:spark-submit --jars /path/to/spark-excel_2.12-0.13.1.jar your_spark_script.py - 集群全局配置(需管理员权限)
如果有集群管理员权限,可以修改spark-defaults.conf文件,添加:
这样所有Spark作业都会自动加载该依赖。spark.jars.packages com.crealytics:spark-excel_2.12:0.13.1
注意事项
- 确保
spark-excel的版本和你的Spark版本兼容,比如0.13.x版本适配Spark 3.x,Scala 2.12;如果是Spark 2.x,需要对应Scala 2.11的版本(如com.crealytics:spark-excel_2.11:0.12.3)。
内容的提问来源于stack exchange,提问作者Luca Lombardi
相关产品推荐
相关产品推荐

