如何在Palantir Foundry代码库中不使用transform/transform_df导入数据集并返回值列表
我来帮你梳理下Palantir Foundry里的这两个需求,给你实际可用的解决方案:
在Foundry中无需transform/transform_df导入数据集并提取值列表
1. 直接用Foundry SDK加载数据集(无transform装饰器)
如果你不需要构建流水线,只是想在脚本、Code Workbook或者交互式环境里直接访问数据集并提取值列表,完全可以绕开transform/transform_df装饰器,用Foundry SDK的Dataset类直接加载。
具体代码示例:
from foundry import Dataset import pandas as pd def get_dataset_value_list(dataset_path, target_column): # 替换成你的数据集路径(比如 /your-project/datasets/your-dataset)或RID dataset = Dataset(dataset_path) # 把数据集加载为Pandas DataFrame df = dataset.read_pandas() # 提取目标列的所有值转为列表 return df[target_column].tolist() # 调用函数直接拿到结果 my_value_list = get_dataset_value_list("/my-team/projects/customer-data/datasets/user-profiles", "email") print(my_value_list)
这种方式适合做数据探查、临时计算或者非流水线的脚本任务,调用函数就能直接拿到内存中的值列表,完全不受transform流水线的限制。
2. 以DataFrame为输入返回值列表的通用方法
不管你的DataFrame是从Dataset加载的,还是其他方式生成的,都可以写一个普通的Python函数来处理,不需要任何Foundry特定的装饰器:
def convert_df_to_value_list(input_df, column_name): # 可选:先检查列是否存在,避免报错 if column_name not in input_df.columns: raise ValueError(f"找不到列 {column_name},请检查列名是否正确") # 把指定列转为列表返回 return input_df[column_name].tolist() # 使用示例:假设df是已经加载好的DataFrame customer_ids = convert_df_to_value_list(df, "customer_id")
关于transform/transform_df的补充说明
你提到用transform装饰器后无法访问输入文件,其实transform系列装饰器的核心是构建Foundry流水线中的数据集转换步骤,它们的作用是生成新的数据集输出,而不是返回内存中的值列表。如果你的需求只是提取值做临时计算,完全不需要用transform,直接用上面的方法更贴合需求。
内容的提问来源于stack exchange,提问作者Gavisha BN
相关产品推荐
相关产品推荐

