首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Palantir Foundry代码库中创建模式数据健康期望

在Palantir Foundry代码库中创建模式数据健康期望
EN

Stack Overflow用户
提问于 2022-07-17 11:44:29
回答 1查看 114关注 0票数 1

我有一个数据集,它是Palantir Foundry代码库中定义的Python转换的输出。它有特定的列,但考虑到随着时间的推移,数据可能会发生变化,我希望验证这些列(大约73)在未来保持。

如何创建数据健康预期或检查,以确保所有73列在未来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-19 12:54:22

您可以使用期望值来断言输出架构中存在哪些列。

架构期望的官方文档

有3种模式期望:

代码语言:javascript
复制
# Assert some columns exist.
E.schema().contains({'col1': type1, 'col2': type2})

# Assert the schema contains only columns from the given set (but not necessarily all of them).
E.schema().is_subset_of({'col1': type1, 'col2': type2})

# Assert the schema contains exactly the given columns.
E.schema().equals({'col1': type1, 'col2': type2})

此外,对于检查单个列,可以使用E.col('col1').exists()。但是对于73列,最好使用E.schema()

因此,对于一个更充实的例子,您可能有如下内容:

代码语言:javascript
复制
from transforms.api import transform_df, Check, Input, Output
import transforms.expectations as E
from pyspark.sql import types as T

COLUMNS_WHICH_MUST_EXIST = {
    'string_column': T.StringType(),
    'number_column': T.IntegerType(),
    # ...and 71 more.
}

@transform_df(
    Output("ri.foundry.main.dataset.abcdef", checks=[
        Check(E.schema().contains(COLUMNS_WHICH_MUST_EXIST), "contains important columns"),
    ]),
    input_data=Input("ri.foundry.main.dataset.12345678"),
)
def compute(input_data):
    # ... your logic here

有关可用选项的更多详细信息,请参见期望值检查的官方文件

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73011476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档