news 2026/4/15 9:00:30

pyspark 新接口 DataSource V2 写法 写入paimon为例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pyspark 新接口 DataSource V2 写法 写入paimon为例

5种写入动作

spark新接口 DataSource V2: 介绍: df.writeTo(...) 返回的是 DataFrameWriterV2,是 Spark 3.x 引入的 DataSource V2 写接口,与旧的 df.write (DataFrameWriter V1) 是两套完全不同的 API 案例: df.writeTo("paimon.bi_dwd.tb1") \ .using("paimon") \ .replace() api 区别: .create() 等价 SQL:CREATE TABLE ... AS SELECT ...(CTAS) 表不存在:建表 + 写数据 表已存在:抛异常 .createOrReplace() 等价 SQL:CREATE OR REPLACE TABLE ... AS SELECT ... 表不存在:建表 + 写数据 表已存在:先 DROP 再 CREATE,相当于完整重建表并写入新数据 注意:会丢失原表所有数据及表结构定义,适合每次全量刷新场景 .replace() 等价 SQL:REPLACE TABLE ... AS SELECT ... 表不存在:抛异常 表已存在:DROP + CREATE 重建写入 .append() 等价 SQL:INSERT INTO ... 向已有表追加数据(INSERT INTO 语义) 表不存在会报错,不会自动建表 不支持 .using() / .tableProperty()(表已存在,无需配置) .overwritePartitions() 等价 SQL:INSERT OVERWRITE ...(动态分区模式) 覆盖 DataFrame 中涉及到的分区,其他分区数据保留 相当于 spark.sql.sources.partitionOverwriteMode=dynamic 的 INSERT OVERWRITE

接口对比

案例

动态覆盖的分区表 且表可能不存在

writer = ( df_sink.writeTo("paimon.db1.tb1") .using("paimon") .tableProperty("bucket", "16") .tableProperty("bucket-key", "uid") .partitionedBy("dt") ) try: writer.overwritePartitions() except Exception: # 表不存在时 overwritePartitions 会抛异常,改用 create writer.create()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 8:59:23

AI编程革命:Codex一键生成脚本

告别重复造轮子:Codex写脚本的技术文章大纲理解Codex及其能力Codex是基于GPT-3的AI模型,专门用于代码生成和自然语言转代码任务。 支持多种编程语言,包括Python、JavaScript、Ruby等,适用于自动化脚本、数据处理和快速原型开发。 …

作者头像 李华
网站建设 2026/4/15 8:59:12

3个简单步骤解锁Sketchfab模型下载:Firefox用户的终极免费指南

3个简单步骤解锁Sketchfab模型下载:Firefox用户的终极免费指南 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 你是否在Sketchfab上看到令人惊叹的3D模…

作者头像 李华
网站建设 2026/4/15 8:58:37

CSDN与GitHub双平台协同运营:从技术传播到个人品牌构建全指南

CSDN与GitHub双平台协同运营:从技术传播到个人品牌构建全指南 在当前开发者生态中,CSDN与GitHub早已成为技术人不可或缺的两大核心阵地,但二者的定位差异的导致多数开发者陷入“单平台运营”的局限——要么在CSDN深耕内容却缺乏代码沉淀,要么在GitHub维护项目却难以触达中…

作者头像 李华