0

背景:我有一个 CSV 文件,其中有一列包含给定行的标签列表。标签列表没有任何特定的顺序,并且随标签列中的每个单元格而变化。我正在寻找与字符串“Owner”匹配的行的值。拉入 CSV 文件时,整个单元格是每个单元格 1 个字符串。此列中的示例单元格如下所示:

"Organization": "Microsoft", "Owner": "Eric Holmes", "DateCreated": "07/09/2021"

目标:我想在 Azure 数据流或 Azure 数据工厂中找到一种方法来创建一个新列,其中包含列表中特定键的值。

例子:

当前列

Tags
"Department": "Business", "Owner": "Karen Singh", "DateCreated": "09/20/2019"
"Owner": "Henry Francis", "AppName": "physics-engine", "Department": "GeospatialServices"
"Department": "Fashion", "DateCreated": "01/10/2015", "Owner": "Xiuxiang Long"

所需列

Owner
"Karen Singh"
"Henry Francis"
"Xiuxiang Long"

到目前为止的工作:我已将标签列中的每个字符串拆分为一个数组,方法是将其分开并使用逗号 (,)。然后我用冒号 (:) 在每个索引处拆分每个字符串。这使得值看起来像:

Tags
[["Department", "Business"], ["Owner", "Karen Singh"], ["DateCreated", "09/20/2019"]]
[["Owner", "Henry Francis"], ["AppName", "physics-engine"], ["Department", "GeospatialServices"]]
[[Department", "Fashion"], ["DateCreated", "01/10/2015"], ["Owner", "Xiuxiang Long"]]

为了拆分字符串,我使用了这个开放表达式

mapIndex(split(replace(Tags, '"', ''), ','), split(#item, ':'))

问题 我是开放表达式和 Azure 数据工厂和数据流的新手。有谁知道我会怎么做:

  1. 搜索所需的标签,例如“所有者”
  2. 并返回与之关联的值

抱歉,我知道这个问题听起来很简单,但是仅使用开放表达式函数会使这比必要的更加复杂。此外,如果有更好的方法来解决这个问题,我将不胜感激任何输入!我一直在用头撞墙,任何线索都有帮助。谢谢!

4

1 回答 1

0

我试图重现它,可以使用派生列实现它,您可以在其中拆分():

使用派生列转换并使用以下表达式:

split(split(tags,'"Owner":')[2],'"')[2]

在此处输入图像描述

数据预览:

在此处输入图像描述

于 2021-08-26T04:24:03.277 回答