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

Spark SQL导入CSV无结果:Databricks挂载Azure Blob存储创建表无数据

解决Databricks创建CSV表后查询无数据的问题

以下是排查和解决该问题的几个关键步骤:

  • 验证文件路径与存在性
    先确认挂载点下的文件是否存在且路径无误:

    %fs ls mnt/testdllg/bloby/raw/
    

    注意:Azure Blob和Databricks路径区分大小写,需确保文件名、路径拼写完全一致。如果文件不存在,先检查挂载配置或文件上传状态。

  • 适配CSV文件的表头设置
    如果你的circuits.csv第一行是字段名(表头),必须在OPTIONS中添加header "true",否则Spark会将表头当作数据行处理,而类型不匹配的行会被默认过滤:

    CREATE TABLE IF NOT EXISTS csv_db.circuits(
      circuitId INT,
      circuitRef STRING,
      name STRING,
      location STRING,
      country STRING,
      lat DOUBLE,
      lng DOUBLE,
      alt INT,
      url STRING
    )
    USING CSV
    OPTIONS (path "mnt/testdllg/bloby/raw/circuits.csv", header "true")
    

    若CSV使用非逗号分隔符(如制表符),还需添加delimiter "\t"指定分隔符。

  • 检查Schema类型兼容性
    手动定义的Schema可能与实际数据类型不匹配,导致数据被过滤。可以先让Spark自动推断Schema,对比差异:

    CREATE TABLE IF NOT EXISTS csv_db.circuits_temp
    USING CSV
    OPTIONS (path "mnt/testdllg/bloby/raw/circuits.csv", header "true", inferSchema "true")
    

    然后查看自动生成的表结构:

    DESCRIBE csv_db.circuits_temp
    

    对比你手动定义的字段类型,修正不匹配项(比如lat字段若实际是字符串类型,却定义为DOUBLE会导致数据丢弃)。

  • 排查数据解析错误
    开启调试日志查看具体错误:

    SET spark.sql.debug.maxToStringFields=100;
    SELECT * FROM csv_db.circuits LIMIT 10;
    

    若有类型转换报错,针对性调整Schema或清洗数据。

  • 确认文件内容有效性
    查看文件是否为空或内容异常:

    %fs head mnt/testdllg/bloby/raw/circuits.csv
    

    确保文件有有效数据行,而非仅表头或空文件。

内容的提问来源于stack exchange,提问作者Luis Gildardo Gil Gonzalez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:56:10