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()
相关推荐
B8017913Y2 小时前
2026撰写行业报告总写不完零散专业词汇?可系统梳理行业专业词汇
大数据·人工智能
2601_962341302 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计
2503_931712483 小时前
10m/s超高速电梯:西奥XO-NEWIII如何树立行业速度标杆
java·大数据·数据库
@insist1233 小时前
系统规划与管理师-体系结构/接口/数据/软件定义全解析
大数据·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
新e选店长3 小时前
新e选烤火罩使用相关问题、购买相关问题、售后相关问题。
大数据·科技·物联网·材质·烤火罩
法雅特吉他4 小时前
国产吉他品牌技术发展与市场格局分析
大数据·经验分享·新媒体运营·学习方法·流量运营·材质·内容运营
我的温馨家园4 小时前
新手入局干细胞研究的五大认知陷阱
大数据·人工智能·精选
小羊Yveesss4 小时前
2026年外贸建站服务器怎么选?访问速度、稳定性和海外收录怎么判断
大数据·运维·服务器
ACP广源盛139246256734 小时前
GSV6155 @ACP#工业车规 DP1.4 重定时器 Retimer
大数据·人工智能·分布式·嵌入式硬件
海兰4 小时前
【AI编程思考:第八篇】从演示到生产:AI工程部署实战指南
大数据·人工智能·ai编程