如何将.sqlite文件数据导入Databricks Spark并访问其中数据表?
将SQLite数据集导入Databricks Spark的步骤
1. 上传SQLite文件到Databricks可访问的存储
先把下载的.sqlite文件上传到Databricks的存储系统,比如DBFS(Databricks File System)或者Unity Catalog卷:
- 通过Databricks UI操作:左侧导航栏选数据 → 找到目标存储位置(比如DBFS的
/FileStore目录) → 点击上传选择本地的SQLite文件。 - 上传完成后记录文件完整路径,示例:
dbfs:/FileStore/datasets/your_dataset.sqlite。
2. 安装SQLite依赖
Databricks集群默认不含SQLite的JDBC驱动,需先安装:
- 单Notebook会话临时安装:运行以下命令
%pip install sqlite-jdbc
- 集群全局安装:在集群配置的库页面,添加Maven坐标
org.xerial:sqlite-jdbc:3.41.2.1(版本可按需调整),重启集群生效。
3. 读取SQLite中的数据表
方法一:JDBC读取单表
直接指定表名读取,Python示例代码:
# 配置连接参数 jdbc_url = "jdbc:sqlite:/dbfs/FileStore/datasets/your_dataset.sqlite" jdbc_driver = "org.sqlite.JDBC" # 读取目标表 df = spark.read \ .format("jdbc") \ .option("url", jdbc_url) \ .option("dbtable", "your_table_name") \ .option("driver", jdbc_driver) \ .load() # 验证数据 df.show() df.printSchema()
方法二:批量读取所有表
若不清楚所有表名,先查询SQLite系统表获取表列表:
# 查询所有用户自定义表 tables_df = spark.read \ .format("jdbc") \ .option("url", jdbc_url) \ .option("dbtable", "SELECT name FROM sqlite_master WHERE type='table'") \ .option("driver", jdbc_driver) \ .load() # 提取表名列表 table_names = [row.name for row in tables_df.collect()] # 批量读取并存储为字典 tables_dict = {} for table in table_names: tables_dict[table] = spark.read \ .format("jdbc") \ .option("url", jdbc_url) \ .option("dbtable", table) \ .option("driver", jdbc_driver) \ .load() # 访问任意表示例 tables_dict["table1"].show()
方法三:Spark原生SQLite数据源(Spark 3.4+)
如果你的Databricks Runtime版本为13.0+(对应Spark 3.4+),可直接用官方SQLite数据源:
# 读取指定表 df = spark.read.format("sqlite") \ .option("path", "dbfs:/FileStore/datasets/your_dataset.sqlite") \ .option("dbtable", "your_table_name") \ .load()
4. 后续数据操作
读取后的DataFrame可直接进行Spark SQL操作,比如注册临时视图:
df.createOrReplaceTempView("temp_table") spark.sql("SELECT * FROM temp_table LIMIT 10").show()
也可写入Delta Lake实现持久化存储:
df.write.format("delta").mode("overwrite").save("dbfs:/delta/your_table")
内容的提问来源于stack exchange,提问作者KSekhar
相关产品推荐
相关产品推荐

