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

如何在Pyspark Snowflake Connector中正确使用PURGE配置选项

PySpark-Snowflake connector purge配置失效问题解决

根因说明

当前配置中usestagingtable设置为OFF,此时连接器会使用会话级临时内部阶段中转写入数据,这类临时阶段属于Snowflake会话专属资源,会话结束后会被自动回收,不受purge参数控制,因此即使设置purge=off临时文件仍然会被删除。

purge参数正确生效条件

purge参数仅用于控制COPY INTO操作完成后,持久化阶段(自定义内部/外部阶段) 内的源文件是否删除,需满足以下两个前提:

  • 配置中不设置usestagingtable=OFF,保持该参数默认值ON使用临时表中转逻辑
  • 显式指定提前创建好的自定义持久化阶段作为数据中转存储,不使用连接器自动生成的临时阶段

正确配置示例

首先在Snowflake对应库schema下创建持久化自定义阶段,再调整写入参数如下:

df.write.mode('overwrite') \
        .format(SNOWFLAKE_SOURCE_NAME) \
        .options(sfURL=[url],
                 sfUser=[user],
                 sfDatabase=[database],
                 sfSchema=[schema],
                 sfWarehouse=[warehouse],
                 sfRole=[role],
                 pem_private_key=pkb) \
        .option('truncate_table', 'ON') \
        .option('continue_on_error', 'on') \
        .option('purge', 'off') \
        # 替换为你创建的自定义持久阶段名
        .option('stage', 'YOUR_CUSTOM_PERSIST_STAGE') \
        .option('dbtable', [dbtable]) \
        .save()

补充说明

  • purge参数值大小写不敏感,off、OFF、false均可生效
  • 若仅需保留加载出错的异常行文件,可额外配置validation_mode参数将错误数据定向存储到指定路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:18:01