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

如何在Foundry代码仓库中向文件系统写入RDS文件?

在Foundry代码仓库中写入RDS文件到文件系统

要实现从Foundry代码仓库向文件系统写入RDS文件,你需要将输出类型从数据表改为文件输出,然后通过rpy2将R对象保存为本地临时文件,再上传到Foundry的文件系统中。以下是修改后的完整代码:

from transforms.api import transform, Output
import tempfile
import os
from rpy2.robjects.packages import importr
import rpy2.robjects as ro

@transform(
    # 声明输出为文件类型
    output=Output("/Global/Foundry Training/Examples/PySpark & Python Transforms/Transforms Execute R Code/lower_rds", type="file")
)
def my_compute_function(ctx, output):
    base = importr('base')
    # 生成目标对象
    lower_case = base.tolower("LOWER")[0]

    # 创建临时文件用于保存RDS
    with tempfile.NamedTemporaryFile(suffix='.rds', delete=False) as tmp_file:
        tmp_path = tmp_file.name

    try:
        # 使用R的saveRDS函数将对象写入临时文件
        base.saveRDS(lower_case, file=tmp_path)
        
        # 将临时文件上传到Foundry文件系统的输出路径
        output.upload_file(tmp_path)
    finally:
        # 清理临时文件
        os.unlink(tmp_path)

关键说明:

  • 输出类型修改:在Output中添加type="file",告诉Foundry这是一个文件输出而非数据表。
  • 临时文件处理:利用Python的tempfile模块创建本地临时文件,避免直接操作Foundry的文件系统路径(Foundry Transform中无法直接写入绝对路径)。
  • RDS保存与上传:通过rpy2调用R的saveRDS函数将对象写入临时文件,再用output.upload_file()方法将文件上传到指定的Foundry路径。
  • 资源清理:最后删除临时文件,避免占用本地存储资源。

内容的提问来源于stack exchange,提问作者jamba-laya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:13:29