繁体   English   中英

我想从数据集创建列表并在 palantir 铸造厂的另一个 function 中使用,但找不到任何解决方案

[英]I want to create the list from the datasest and use in another function in palantir foundry but not able to find any solution

下面的代码工作正常,当我在 Palantir 铸造厂构建数据集时,它会生成 3 output 但我的问题是你可以在那里看到第一行和第二行代码从数据集中创建列表并在 function 下方使用该列表,因此它将生成 3 output。 但我尝试了很多东西但仍然找不到解决方案。如果有人可以帮助解决这个问题

gen_o =[A32,A33,A35]
program_id=[N,L,P]
def generat_each_dataSet(v_output,v_program_id):
   @transform_df(
   output("............path " + v_output)
   df =input()
   df1=input()
   )
   def compute(df,df1):
    ... here transformation code is written......
    .... in transformation i am filtering the df based on program id 
        df = df.join(df1).select()  
    
        return df
   return compute
def loop_for_each_datasets():
   transform=[]
   incnt=0
   for v_output in  gen_o
        f= generat_each_dataset(gen_o[incnt],program[incnt])
        incnt =incnt + 1
        transform.append(f)
   return transform
loop_for_each_datasets()    

'''

这是一个比较常见的问题,它混淆了 Foundry 中 CI 时间和构建时间的行为

您在转换之外的数据集和代码是在 CI 检查期间执行的,我认为是在renderShrinkWrap步骤期间执行的。 在 CI 内部,您无权访问任何数据集,因此您无法使用一个数据集的内容来生成转换。

为了保证可重现的构建,生成的转换和相关的 jobSpec 必须是确定性的,因此,任何生成转换的代码都必须仅依赖于通过转换之外的代码可访问的东西。 这样具有局部常量,这就是您所做的。

你可以这样想:

1-你承诺掌握

2- CI 任务发现您的代码正在生成哪些转换数据集

3- CI 创建在 2 中发现的任何不存在的Output数据集

4- CI 将带有逻辑的作业规范附加到在 2 中发现的所有Output数据集上运行相关的transform代码

5- CI 以绿色结束,每个数据集现在可以构建通过作业规范连接的转换逻辑。

供参考:您可以在数据集中的详细信息中查看作业规范。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM