Palantir-Foundry - 在 python 转换中使用 'context' 失败

Palantir-Foundry - Use 'context' in a python transform fails

我想比较来自融合 sheet 的数据与集成在对象类型中的数据;虽然用户可以在对象资源管理器中更新和创建数据,但我需要与回写数据集的数据进行比较。

写回数据集不能作为输出为相关支持数据集的转换中的输入:它会引发循环依赖错误。
所以我尝试从上下文中读取写回数据集,使用如下内容:

@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: Could not find resource with path write_back_dataset_path

我不明白为什么在这种情况下它会失败,而我已经将这种语法用于其他转换。
预先感谢您的帮助。

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

有两种方法可以让数据集参与转换:将其声明为输入或输出,或者将其作为上下文的一部分打开。两个选项都不允许:

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

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