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

如何在Palantir Foundry代码仓库中创建数据健康期望校验73列

在Palantir Foundry中验证数据集列完整性的方案

方法1:利用Foundry Data Health内置规则

  • 打开目标数据集的Data Health界面,切换到「Expectations」标签页
  • 点击「Add Expectation」,选择「Column exists」规则
  • 从当前数据集列列表批量勾选全部73个列,或手动输入列名完成配置
  • 设置触发条件:选择「每次数据集更新后自动运行」,或指定固定周期执行
  • 配置告警方式(邮件、Slack等),当任意列缺失时,系统会自动触发通知并在Data Health面板标记失败状态

方法2:在Python转换代码中嵌入硬检查

直接在生成数据集的转换逻辑中加入列验证,从源头阻断不符合要求的输出:

from transforms.api import transform, Input, Output

# 维护完整的必填列清单
REQUIRED_COLUMNS = {
    "col_name_1", "col_name_2", ...  # 填入全部73个列名
}

@transform(
    output=Output("/your/dataset/path"),
    source_input=Input("/source/data/path")
)
def generate_dataset(output, source_input):
    # 原有转换逻辑
    df = source_input.dataframe()
    # ... 你的数据处理代码 ...
    
    # 验证输出列完整性
    actual_cols = set(df.columns)
    missing_cols = REQUIRED_COLUMNS - actual_cols
    if missing_cols:
        raise ValueError(f"必填列缺失: {', '.join(missing_cols)}")
    
    output.write_dataframe(df)
  • 这种方式会在转换运行时直接终止流程并抛出错误,避免无效数据流入下游
  • 建议把REQUIRED_COLUMNS提取到单独的配置文件(如column_config.py)中,方便后续统一维护

方法3:添加流水线级检查节点

在转换所属的Pipeline中新增检查节点,实现流水线完成后的批量验证:

from transforms.api import check, Input

REQUIRED_COLUMNS = {
    "col_name_1", "col_name_2", ...  # 73个列名
}

@check(
    input=Input("/your/dataset/path"),
    description="验证数据集必填列完整性"
)
def validate_column_presence(input):
    df = input.dataframe()
    actual_cols = set(df.columns)
    missing_cols = REQUIRED_COLUMNS - actual_cols
    if missing_cols:
        return False, f"缺失列: {', '.join(missing_cols)}"
    return True, "所有必填列均存在"
  • 设置检查触发时机为「流水线运行完成后」,若检查失败,整个流水线会标记为失败状态
  • 可结合Foundry的告警系统,配置失败后的通知规则

额外优化建议

  • 将73个列名维护为版本化的清单文件(如代码仓库中的required_columns.txt),避免多处硬编码,降低维护成本
  • 若列名有固定规则(如统一前缀),可采用正则匹配替代完整列名清单,减少配置工作量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:12:22