如何在没有my_compute_function的情况下访问数据框

问题描述

如何在不使用my_compute_function的情况下使用数据集。我想从存储库中的file1调用一个文件中定义的函数。在第二个文件中,我要使用数据集my_input_integration,可能没有my_compute_function。如何合并来自两个不同存储库文件的数据集。我不想合并到一个文件中,因为我想将第二个文件用作实用程序文件。如果任何人都可以回答这个问题,那就太好了。

存储库文件1

from transforms.api import transform,Input,Output


@transform(
    my_output=Output("/my/output"),my_input=Input("/my/input"),)
def my_compute_function(my_input,my_output):
    return calling_function(my_input,my_output)

存储库文件2

from transforms.api import transform,Output


@transform(
    my_input_integration =Input("/my/input"),)
def calling_function(my_input,my_output,my_input_integration??)
   
    return my_output.write_dataframe(
        my_input.dataframe(),column_descriptions=my_dictionary
    )

解决方法

如果我正确理解了您要实现的目标,那么您将无法直接执行此操作-必须在该转换中定义对转换的任何输入,然后将其传递到实用程序函数中,注入”输入。

因此,实现所需目标的最直接方法是执行以下操作:

文件1:

@transform(
    my_output=Output("/my/output"),my_input=Input("/my/input"),my_input_integration=Input("/my/input_integration"),)
def my_compute_function(my_input,my_output,my_input_integration):
    return calling_function(my_input,my_input_integration)

文件2:

def calling_function(my_input,my_input_integration)
    return my_output.write_dataframe(
        my_input.dataframe(),column_descriptions=my_dictionary
    )

如果您真的认为您需要自动“注入”数据集的功能,并且将它们作为参数添加到转换中太麻烦了,那么可以采用更复杂的方法来定义要应用的自定义包装器转换功能,使输入数据集自动可用。不过,我确实会避免这种情况,因为它给代码增加了很多复杂性和“魔力”,这对于新手和新手来说都是很难理解的。