Azure Databricks读取CSV文件报错:Table or view not found求助
解决Azure Databricks中SQL读取CSV文件报错的问题
问题原因
SQL语句里SELECT * FROM后只能接表或视图名称,不能直接用DBFS文件路径,这就是触发AnalysisException: Table or view not found错误的核心原因。
解决方法
方法1:创建持久化外部表
通过创建外部表关联CSV文件,之后就能用表名查询数据:
CREATE TABLE Company USING CSV OPTIONS ( path 'dbfs:/FileStore/shared_uploads/prasanth/Company.csv', header 'true', -- 若CSV带表头就启用,没有则设为'false' inferSchema 'true' -- 自动推断列的数据类型,按需关闭 ); -- 查询表数据 SELECT * FROM Company;
方法2:创建临时视图(适合临时查询)
临时视图仅在当前会话有效,不用持久化存储,适合一次性查询场景:
CREATE OR REPLACE TEMP VIEW Company_temp USING CSV OPTIONS ( path 'dbfs:/FileStore/shared_uploads/prasanth/Company.csv', header 'true', inferSchema 'true' ); SELECT * FROM Company_temp;
方法3:直接查询文件(Databricks SQL支持)
用csv.前缀加反引号包裹路径,直接查询文件内容:
SELECT * FROM csv.`dbfs:/FileStore/shared_uploads/prasanth/Company.csv` OPTIONS (header 'true', inferSchema 'true');
额外检查项
- 验证文件路径:在Databricks笔记本执行
dbutils.fs.ls("dbfs:/FileStore/shared_uploads/prasanth/"),确认Company.csv存在。 - 检查权限:确保当前用户拥有该DBFS路径及文件的读取权限。
内容的提问来源于stack exchange,提问作者Antony
相关产品推荐
相关产品推荐

