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

在Databricks中能否仅用SQL加载数据?求Python写入的SQL等价实现

Databricks SQL 对应Python写入目录的等价写法

针对你用Python的df.write.format('delta').save('/dir/to/output/')写入目录的操作,Databricks SQL有以下几种等价实现方式:

直接写入指定路径(不注册到Metastore)

方式1:CREATE TABLE AS SELECT (CTAS) 直接指定路径

CREATE TABLE delta.`/dir/to/output/`
AS SELECT * FROM your_source_data;

这里delta./dir/to/output/``明确指定使用Delta格式并写入目标路径,查询结果会直接生成Delta文件存储到该路径下。

方式2:INSERT OVERWRITE DIRECTORY 指定格式

INSERT OVERWRITE DIRECTORY '/dir/to/output/'
USING delta
SELECT * FROM your_source_data;

此方式会覆盖目标路径下的现有数据,适合需要全量覆盖写入的场景。

方式3:COPY INTO(幂等写入,适合增量/重复执行)

COPY INTO delta.`/dir/to/output/`
FROM (SELECT * FROM your_source_data)
FILEFORMAT = delta;

COPY INTO支持重复执行而不会重复写入相同数据,适合定时同步或增量更新的场景。

写入Metastore注册的表

如果需要将数据写入到Databricks Metastore的表中,可使用以下写法:

-- 创建新Delta表并写入数据
CREATE TABLE your_table_name
USING delta
AS SELECT * FROM your_source_data;

-- 追加数据到现有表
INSERT INTO your_table_name
SELECT * FROM your_source_data;

-- 覆盖现有表数据
INSERT OVERWRITE TABLE your_table_name
SELECT * FROM your_source_data;

注意事项

  • 路径需用反引号(`)包裹,避免路径中的特殊字符引发语法错误
  • USING delta或delta.路径``对应Python中的format('delta'),明确指定存储格式
  • 如果仅需临时存储数据或无需在Metastore中注册,直接使用路径形式的写法即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:02:39