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

Databricks中使用COPY INTO指定列导入CSV数据报错求助

解决Databricks COPY INTO导入CSV的语法错误问题

错误原因

你的COPY INTO语句存在两处关键语法问题:

  1. 直接在子查询的FROM后使用URL字符串,不符合Databricks的数据源引用规范,需要通过csv.前缀指定CSV格式的外部数据源。
  2. format_options的写法虽不致命,但规范的语法需用括号包裹键值对,提升兼容性。

修正后的语句

方式一:通过列名匹配导入(推荐)

如果CSV表头与目标表列名完全匹配,可直接省略列选择逻辑,简化语句:

%sql 
COPY INTO AdventureWorks.tmpAccount
FROM 'https://raw.githubusercontent.com/anotherrepo/myrepo/main/data/Account.csv'
FILEFORMAT = CSV
FORMAT_OPTIONS (
  'header' = 'true',
  'inferSchema' = 'false'
);

若需明确指定导入列,可添加SELECT子句:

%sql 
COPY INTO AdventureWorks.tmpAccount
FROM 'https://raw.githubusercontent.com/anotherrepo/myrepo/main/data/Account.csv'
FILEFORMAT = CSV
FORMAT_OPTIONS (
  'header' = 'true',
  'inferSchema' = 'false'
)
SELECT AccountKey, AccountCodeAlternateKey, AccountDescription, AccountType;

方式二:通过位置索引选择列

如果需要按列的位置(而非列名)选择导入,需用csv.前缀引用数据源:

%sql 
COPY INTO AdventureWorks.tmpAccount
FROM (
  SELECT p.$1, p.$3, p.$5, p.$6
  FROM csv.`https://raw.githubusercontent.com/anotherrepo/myrepo/main/data/Account.csv` p
)
FILEFORMAT = CSV
FORMAT_OPTIONS (
  'header' = 'true'
);

注意事项

  • 确保Databricks集群具备访问该GitHub RAW URL的权限,私有仓库需额外配置认证信息。
  • 由于已提前定义目标表结构,将inferSchema设为false可避免自动推断类型引发的字段冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:33:28