微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种方法可以填充特定于数据集的列描述?

如何解决有没有一种方法可以填充特定于数据集的列描述?

数据集1和数据集2具有相同的列名但描述不同。在数据集1转换中,我会说我正在处理数据集1,因此它必须优先考虑该数据集1的特定描述。如果要对另一个数据集进行转换,则希望优先考虑该数据集。有没有办法填充特定于数据集的列描述?

例如,my_compute_function中的参数可以通过一种方式传递必须赋予优先级的数据集名称 列1,数据集1 {数据集1名称}的列描述。 列1,数据集2 {Dataset 2 name}的列描述, ...

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):
    my_output.write_dataframe(
        my_input.dataframe(),column_descriptions={
            "col_1": "col 1 description"
        },???  
    )

解决方法

执行此操作的一种方法是为所有数据集提供“替代字典”,其中特定于数据集的描述可能优先。

即你有:

from transforms.api import transform,Input,Output

GENERAL_DESCRIPTIONS = {
  "col_1": "my general description"
}

LOCAL_DESCRIPTIONS = {
  "/path/to/my/dataset": {
    "col_1": "my override description"
  }
}

@transform(
  my_output=Output("/path/to/my/dataset"),my_input=Input("/path/to/input"),)
def my_compute_function(my_output,my_input):
  local_updates = LOCAL_DESCRIPTIONS.get(my_output.path,{})
  local_descriptions = GENERAL_DESCRIPTIONS.copy()
  local_descriptions.update(local_updates)
  my_output.write_dataframe(
    my_input.dataframe(),column_descriptions=local_descriptions
  )

然后,您可以将GENERAL_DESCRIPTIONS放在模块的根目录中,并在每个转换.py文件的顶部用“本地”描述覆盖。您甚至可以将“本地”描述放在一组转换之上,这样就不必检查每个文件来指定替代。

更新描述字典的最精细的方法是:

...
GENERAL_DESCRIPTIONS = {
  "col_1": "my general description"
}

LOCAL_DESCRIPTIONS = {
  "col_1": "my override description"
}

...
def my_compute_function(my_output,my_input):
  local_descriptions = GENERAL_DESCRIPTIONS.copy()
  local_descriptions.update(LOCAL_DESCRIPTIONS)
  ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。