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

接口对比

案例

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

python 复制代码
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()
相关推荐
姜穆澜10 分钟前
OneID 从 0 到 1 完整生产案例(三)
大数据·wpf
牛马之星18 分钟前
气体涡轮流量计哪家好?天然气流量计源头厂家推荐与选型指南
大数据
会周易的程序员26 分钟前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
jinggongszh1 小时前
欧盟电池护照背景下,电池制造企业如何构建MES数字化追溯体系
大数据·制造·mes系统·电池行业·生产制造执行系统
Allen_LVyingbo1 小时前
医疗AI基础2026-构建可靠智能体的编程路径(上)
大数据·数据库·人工智能·python·自动化
熊野君2 小时前
第 7 章 AI时代产品经理新增能力
大数据·人工智能·经验分享·职场和发展·产品经理
ha_lydms2 小时前
HDFS 简介
大数据·hadoop·hdfs·yarn·调度·aliyun·计算
oort1232 小时前
OortCloud Token Plan
大数据·人工智能·开源
Sky1987star2 小时前
产品资料更新后,怎样让 AI 内容与客服同步生效?
大数据·人工智能
flyinsono2 小时前
单体宠物诊所数字化转型,选对管理系统少走弯路
大数据·人工智能·宠物