首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Palantir-Foundry -在python转换中使用“上下文”失败

Palantir-Foundry -在python转换中使用“上下文”失败
EN

Stack Overflow用户
提问于 2022-03-10 23:52:50
回答 1查看 341关注 0票数 1

我希望将来自融合表的数据与集成在对象类型中的数据进行比较;当用户能够在对象资源管理器中更新和创建数据时,我需要与写回数据集的数据进行比较。

写回数据集不能是输出为相关支持数据集的转换中的输入:它会引发循环依赖错误。

因此,我尝试从上下文中读取写回数据集,使用如下所示:

代码语言:javascript
复制
@transform(
    my_fusion=Input("fusion_dataset_path"),
    my_output=Output("backing_dataset_path")
)
def my_compute_function(my_input, my_output, ctx):
    my_writeback = ctx._foundry.input("write_back_dataset_path", branch="master")
    my_df = ... # All controls come here
    my_output.write_dataframe(my_df) 

问题是,由于一个错误,它没有被接受:

ValueError:无法使用路径write_back_dataset_path查找资源

我不明白为什么在这种情况下它会失败,而我已经在其他转换中使用了这种语法。

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-28 08:40:54

经过几次搜索和尝试,我得出的结论是,这是不可能的。

将数据集包含在转换中有两种方法:要么将其声明为输入或输出,要么将其作为上下文的一部分打开。这两种选择都不允许:

  • --写回数据集不能用作输入,如果它的相关支持数据集是输出,则会引发循环依赖错误。这是在存储库级别检查的,这意味着您不能使用中间数据集。在这种情况下,将其设置为输出不会使sens
  • --写回数据集不是存储库上下文的一部分,因为存储库不是所有者:写回由本体过程管理,本体负责构建它。

我终于找到了解决我的问题的方法:验证过程运行了两次:第一次它导致了用户看不到的“技术”数据集,在这里应用了所有的更新。然后第二次构建用户看到的输出数据集。他对其应用更改,并在第一个上复制它们,以允许第二个验证过程再次运行并验证所编辑的数据。所有这些都是基于用户界面的动作类型和工作室。

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

https://stackoverflow.com/questions/71432125

复制
相关文章

相似问题

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