You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SparkSubmitOperator指定多jar包时出现Azure文件系统类找不到报错如何解决

Spark读取Azure Blob Storage类找不到问题解决方案

你遇到的org.apache.hadoop.fs.azure.NativeAzureFileSystem类找不到报错,核心有3个配置错误:

  • 依赖不全:hadoop-azure包本身依赖azure-storage系列jar包,仅导入hadoop-azure-3.3.1.jar无法满足类加载要求,缺少的依赖会导致核心类无法初始化
  • Jar路径分隔符错误:SparkSubmitOperator的jars和driver_class_path参数要求多个jar路径之间仅用英文逗号分隔,不能加空格,你代码中写的", "会让第二个jar路径前多出空格,系统无法识别到hadoop-azure包的有效路径
  • 版本兼容问题:hadoop-azure包的版本必须和Spark集群自带的Hadoop runtime版本完全匹配,跨版本使用也会出现类加载失败

另外你代码中还有两处笔误:

  • Spark写JDBC的properties配置中,driver的键写错了,原代码是"driver: ",正确写法是"driver": "com.mysql.cj.jdbc.Driver"

解决方案

第一步:补全依赖

下载和你hadoop-azure版本匹配的azure-storage包:hadoop-azure 3.3.1对应使用azure-storage-8.6.6.jar,将该jar包放到和现有两个依赖包相同的路径下。

第二步:修复SparkSubmitOperator配置

移除jar路径之间的空格,同时加入新增的azure-storage依赖:

spark_job = SparkSubmitOperator(
    task_id="my-spark-app",
    application="path/to/my/spark/job.py",
    name="my-spark-app",
    conn_id="spark_default",
    verbose=1,
    conf={"spark.master":spark_master},
    application_args=[tsv_file, mysql_server, mysql_user, mysql_password, mysql_table],
    # 移除逗号后的空格,新增azure-storage包路径
    jars=azure_hadoop_jar + "," + mysql_driver_jar + "," + azure_storage_jar,
    driver_class_path=azure_hadoop_jar + "," + mysql_driver_jar + "," + azure_storage_jar,
    dag=dag)

如果是集群运行模式,建议直接通过spark.jars.packages自动拉取匹配依赖,避免手动管理jar包的路径和版本问题:

conf={
    "spark.master":spark_master,
    "spark.jars.packages": "org.apache.hadoop:hadoop-azure:3.3.1,com.microsoft.azure:azure-storage:8.6.6,mysql:mysql-connector-java:8.0.27"
}

第三步:修复Spark任务代码中的JDBC笔误

df_tsv.write.jdbc(url=mysql_url, table=mysql_table, mode="append", properties={
    "user":mysql_user,
    "password": mysql_password,
    "driver": "com.mysql.cj.jdbc.Driver" # 修正driver键的写法
})

第四步:验证版本兼容性

确认Spark集群使用的Hadoop版本和你引入的hadoop-azure包大版本一致,比如集群Hadoop版本为3.2.x就使用对应3.2.x版本的hadoop-azure包,不要跨版本使用。


内容的提问来源于stack exchange,提问作者Minura Punchihewa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:00