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

在Synapse Notebook(PySpark)中读取ADLS Gen2的SQLite文件遇驱动错误求解决

解决Spark读取ADLS Gen2上SQLite文件的"No suitable driver"错误

错误原因

你直接将ADLS的ABFSS路径作为JDBC URL传入,但SQLite JDBC驱动仅支持访问本地文件系统或可直接挂载的文件路径,无法识别ABFSS协议,导致驱动匹配失败。

解决步骤

1. 将ADLS上的SQLite文件复制到Spark可直接访问的路径

如果是在Databricks环境,可通过dbutils将文件复制到本地临时目录:

storage_account='sname'
container='dev'
file_path='raw'

# 定义ADLS路径和本地临时路径
adls_db_path = f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}/chinook.db"
local_temp_path = "/tmp/chinook.db"

# 复制文件到本地临时目录
dbutils.fs.cp(adls_db_path, f"file:{local_temp_path}")

如果是其他Spark集群(如HDInsight),可通过FUSE挂载ADLS存储,将远程路径映射为本地文件系统路径。

2. 使用正确的SQLite JDBC配置读取数据

指定SQLite专属的JDBC URL格式,并明确指定驱动类:

df = spark.read \
    .format("jdbc") \
    .option("url", f"jdbc:sqlite:{local_temp_path}")  # 格式为 jdbc:sqlite:<本地文件路径>
    .option("dbtable", "employees") \
    .option("driver", "org.sqlite.JDBC")  # 必须显式指定SQLite驱动类
    .load()

df.show()

3. 验证JDBC Jar包配置

确保上传的SQLite JDBC Jar包(如sqlite-jdbc-*.jar)已正确添加到Spark池的依赖中:

  • 在Databricks中,确认Jar包已添加到集群的"库"列表,且状态为"已安装"
  • 其他Spark环境需确保Jar包在spark.driver.extraClassPath和spark.executor.extraClassPath配置中被正确引用

内容的提问来源于stack exchange,提问作者AzSurya Teja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:47:29