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

Palantir Foundry:如何将Compass File Lister生成的JSON用作Transform输入?

问题解决方案

核心问题分析

  1. 依赖冗余错误:你用yaml模块加载JSON格式的rids.json文件,属于不必要的依赖,且Foundry构建环境未预装yaml包,直接导致构建时抛出ModuleNotFoundError。
  2. 执行环境差异:compute函数外的代码会在构建阶段执行,该环境的依赖配置与预览模式不同,未预装的第三方库会直接触发报错。

修改后的代码

from pyspark.sql import functions as F
from transforms.api import transform, Input, Output
from pkg_resources import resource_stream
from functools import reduce
from pyspark.sql import DataFrame
import json  # 替换yaml为Python标准库的json模块

# 加载Compass Files Lister生成的rids.json文件
stream = resource_stream(__name__, "rids.json")
docs = json.load(stream)
raw_datasets = docs["childrenRids"]


@transform(
    output=Output("output name"),
    **{
        raw_dataset: Input(raw_dataset)
        for raw_dataset in raw_datasets
    }
)
def compute(output, **transform_inputs):
    processed_dataframes = []
    for input_name, transform_input in transform_inputs.items():
        input_dataframe = transform_input.dataframe()
        processed_dataframes.append(input_dataframe.withColumn(
            "data_source",
            F.lit(input_name)
        ))

    df = reduce(DataFrame.unionAll, processed_dataframes)
    output.write_dataframe(df)

额外说明

  • 确保rids.json文件与当前Transform代码文件处于代码仓库的同一目录下,保证resource_stream能正确读取文件。
  • 关于Compass Files Lister的动态Transform输入场景,确实建议Palantir补充相关示例文档,降低用户上手成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:03:20