gpt4 book ai didi

azure - 如何修改Azure数据工厂数据流中的动态复杂数据类型字段

转载 作者:行者123 更新时间:2023-12-03 03:27:21 24 4
gpt4 key购买 nike

我有一个复杂的数据类型 (fraudData),字段名称中不希望有连字符,我需要删除连字符或将连字符更改为其他字符。

复杂对象的输入模式如下所示: enter image description here

我尝试使用“选择”和“派生列”数据流函数并添加自定义映射。看来这两个函数都有相同的映射接口(interface)。我当前对选择的尝试是: enter image description here

这让我接近预期的结果。我可以使用 replace 表达式将连字符转换为下划线。

这里的问题是,此映射在 fraudData 结构之外创建了新的根级别列。我想保留 fraudData 结构的层次结构并修改适当的列名称。

如果我无法就地修改fraudData。有什么方法可以将新列合并到另一种复杂的数据类型中吗?

更新:。我事先不知道复杂数据类型的字段。这是一个模式漂移问题。这就是我尝试使用模式匹配解决方案的原因。我将无法硬编码出已知的子列名称。

最佳答案

您可以使用派生列转换重命名复杂数据类型的子列,并将其再次转换为复杂数据类型。我用示例数据尝试了这一点,下面是方法。

  • 具有两个子字段的示例复杂数据类型列如下图所示。 enter image description hereimg:1 源数据预览

  • 在派生列转换中,对于列 fraudData,表达式给出为

@(fraudData_1_chn=fraudData.{fraudData-1-chn},
fraudData_2_chn=fraudData.{fraudData-2-chn})

enter image description hereimg:2 派生列设置

  • 此表达式重命名子字段并将它们嵌套在父列 fraudData 下。

enter image description hereimg:3 转换后的数据 - 字段已重命名。

更新:动态重命名子列

  • 您可以使用以下表达式重命名根列 fraudData 下的所有字段。
@(each(fraudData, match(true()), replace($$,'-','_') =  $$))

enter image description here

这会将具有 - 的字段替换为 _

gif112

您还可以在表达式中使用模式匹配。

@(each(fraudData, patternMatch(`fraudData-.+` ), replace($$,'-','_') = $$))

此表达式将采用具有模式 fraudData-.+ 的字段,并仅在这些字段中将 - 替换为 _

引用:

  1. 关于 script for hierarchical definition in data flow 的 Microsoft 文档
  2. 关于 building schemas using derived column transformation 的 Microsoft 文档

关于azure - 如何修改Azure数据工厂数据流中的动态复杂数据类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75406850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com