You need to enable JavaScript to run this app. Palantir Foundry中transform与transform_df的区别及拆分必要性
优惠活动
大模型
产品
解决方案
定价
更多

Palantir Foundry中transform与transform_df的区别及拆分必要性

Palantir Foundry中transform与transform_df的差异
  • 输入输出处理逻辑不同
    transform是通用型装饰器,支持传入任意类型的Foundry数据集对象(结构化表、非结构化文件、半结构化数据等),你需要手动调用方法将输入转成需要的格式(比如dataframe()方法转Spark DataFrame),处理完成后也要手动调用输出对象的写方法完成数据写入。
    transform_df是专为Spark DataFrame处理场景优化的装饰器,会自动将所有输入数据集转成Spark DataFrame传入处理函数,你只需要返回处理完成的DataFrame,框架会自动完成数据写入,不需要手动处理读写逻辑。
  • 适用场景不同
    transform适用于所有数据处理场景,尤其适合非结构化数据处理、混合类型数据源处理、需要自定义读写逻辑的场景(比如指定读写分区、筛选读取列、自定义序列化规则等)。
    transform_df仅适用于输入输出均为结构化表、全程使用Spark DataFrame做计算的场景。
  • 代码简洁度不同
    同样实现简单的DataFrame过滤逻辑,两种写法的对比如下:
    使用transform的代码:
    from transforms.api import transform, Input, Output
    
    @transform(
        output=Output("/datasets/processed/filtered_data"),
        raw_data=Input("/datasets/raw/source_data")
    )
    def compute(raw_data, output):
        # 手动读取为DataFrame
        source_df = raw_data.dataframe()
        # 业务逻辑
        filtered_df = source_df.filter(source_df.amount > 1000)
        # 手动写入输出
        output.write_dataframe(filtered_df)
    
    使用transform_df的代码:
    from transforms.api import transform_df, Input, Output
    
    @transform_df(
        Output("/datasets/processed/filtered_data"),
        raw_data=Input("/datasets/raw/source_data")
    )
    def compute(source_df):
        # 直接处理输入的DataFrame,直接返回结果即可
        return source_df.filter(source_df.amount > 1000)
    
  • 底层实现无差异
    transform_df本质是基于transform封装的语法糖,底层运行、资源调度逻辑完全一致,两者没有性能上的区别。
分别设置两个方法的原因
  • 兼顾通用性和易用性
    Foundry作为全场景数据开发平台,需要支持结构化、半结构化、非结构化等所有类型的数据处理需求,transform提供了最高的灵活度,可以覆盖所有场景;而结构化DataFrame处理是用户使用频率最高的场景,transform_df可以减少大量样板代码,降低入门门槛,提升日常开发效率。
  • 适配不同用户的开发习惯
    对于资深开发人员,很多场景下需要自定义读写逻辑做性能优化、调试、权限管控,transform的显式读写逻辑更符合这类需求;对于只需要做结构化数据处理的分析人员、业务开发人员,不需要关心底层读写实现,transform_df可以让他们只专注于业务逻辑本身。
  • 平滑的学习路径设计
    新用户可以从简单的transform_df入手快速上手开发,不需要一开始就掌握所有Foundry数据集的读写API,熟悉之后再根据场景需求切换到transform做更复杂的开发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:57:04