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

Databricks COPY INTO导入CSV遇Schema不匹配问题,请求解决

解决Databricks COPY INTO CSV导入Schema不匹配问题

问题场景

执行以下COPY INTO命令导入CSV到Delta表:

COPY INTO dev_stg.mtip.table1
FROM '/Volumes/prd_stg/ext-raw/25714_Table1.CSV'
FILEFORMAT = csv
COPY_OPTIONS ('inferSchema' = 'true','header'='true')

目标Delta表结构:

CREATE TABLE dev_stg.mtip.Table1 (
    PlayerName STRING,
    SiteNumber STRING
)

出现Schema不匹配错误:

schema mismatch was detected while copying into the Delta table (Table: dev_stg.mtip.table1).
This may indicate an issue with the incoming data, or the Delta table schema can be evolved automatically according to the incoming data by setting:
COPY_OPTIONS ('mergeSchema' = 'true')

Schema difference:
Incoming schema is missing field(s): PlayerName, SiteNumber ,
Incoming schema has additional field(s): _c0, _c2, _c3,

添加mergeSchema=true后,表结构被修改为包含_c0字段,不符合预期。

解决方案

1. 验证CSV实际内容与表头

先确认CSV文件的表头是否与目标表字段匹配,是否存在拼写错误、大小写差异或多余列。用以下命令查看CSV数据:

SELECT * FROM csv.`/Volumes/prd_stg/ext-raw/25714_Table1.CSV` LIMIT 5

2. 手动指定列映射,禁用自动Schema推断

放弃inferSchema=true,通过子查询明确选择需要的列,将CSV列映射到目标表字段,忽略多余列。修改后的COPY INTO命令如下:

COPY INTO dev_stg.mtip.table1 (PlayerName, SiteNumber)
FROM (SELECT PlayerName, SiteNumber FROM '/Volumes/prd_stg/ext-raw/25714_Table1.CSV')
FILEFORMAT = csv
COPY_OPTIONS ('header'='true')

如果CSV列名与目标表不一致(比如CSV用小写playername),在子查询中做别名转换:

COPY INTO dev_stg.mtip.table1 (PlayerName, SiteNumber)
FROM (SELECT playername AS PlayerName, sitenumber AS SiteNumber FROM '/Volumes/prd_stg/ext-raw/25714_Table1.CSV')
FILEFORMAT = csv
COPY_OPTIONS ('header'='true')

3. 验证导入结果

执行命令后,查询目标表确认数据是否正确导入:

SELECT * FROM dev_stg.mtip.table1 LIMIT 10

内容的提问来源于stack exchange,提问作者nick leeson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:32:04