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()
相关推荐
武汉星际互动13 分钟前
技术拐点已至:AI Agent给政务大厅带来什么变革?
大数据·人工智能·政务
程序员大阳29 分钟前
副队长大数据教程(7)--Hadoop 集群角色配置逻辑详解
大数据·hadoop·分布式·集群·配置·角色·逻辑
RD_daoyi32 分钟前
外贸独立站从0到1:平台选择 + 建站流程 + 新手避坑
大数据·服务器·网络·人工智能·搜索引擎·职场和发展
2603_9547083141 分钟前
微能网协调控制箱突破传统微电网架构瓶颈
大数据·数据库·人工智能·架构·能源
蓝胖的四次元口袋42 分钟前
RabbitMQ知识梳理(2)
分布式·rabbitmq
智圣新创011 小时前
教育数字化合规背景下 智圣新创高校一表通建设全国低内耗落地指引
大数据·人工智能
猴子15516811 小时前
长期追踪调研的样本留存是怎么实现的:跨波次对齐、催答调度与质控机制,附五家样本服务实测记录
大数据·经验分享
samLi06201 小时前
贵州贵安新区行政区划面数据(含经纬度)
大数据
YH_Analytics2 小时前
2026 洁净室环境在线监测系统行业排名与份额对比销量与份额解析
大数据·网络·人工智能
ha_lydms2 小时前
String Functions(字符串函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute