【问题标题】:Extract JSON data with Data Flow - Flatten Transformation使用数据流提取 JSON 数据 - 展平转换
【发布时间】:2021-05-22 18:07:11
【问题描述】:

previous question 之后,我开始处理数据流,目的是扁平化一个 JSON 文件,该文件是作为 Application Insights REST 查询的结果创建的。您可以找到匿名版本here

我的目标是提取数组“行”数组中的数据,但我最终以笛卡尔方式复制了数据(我得到了 18 行的原始数量,最终得到 324、18*18 )。

我不明白我做错了什么,或者它是否是 JSON“行”数组的问题。

这是我的数据流 - 源具有“每行文档”JSON 选项,“单个文档”引发 [意外字符“] 错误,可能是由于 JSON 中的奇怪格式:

这是 Source 中的数据预览 - 如您所见,它只有一个“tables”节点,“rows”数组中有 18 个元素: 行:

我试图将它展平,但我无法将“行”数据映射到列,我无法使用 table.rows[0] 之类的东西: 此外,行数据被重复 - 输出的 18 行中的每一行都有 18 行:

如果是 JSON 格式或者我做错了什么,我不知道如何深入了解。根据我的经验,可能是后者。

【问题讨论】:

    标签: json azure azure-application-insights azure-data-factory-2 azure-data-flow


    【解决方案1】:

    我认为这是由您的特殊格式引起的。 请试试这个:

    1. 添加rowdata 属性

    2. 扁平化您的数据

    【讨论】:

    • 我已经尝试过了,但它返回的结果相乘(每 18 行 18 个元素)类似于我帖子中的最后一个屏幕截图 - 我无法在评论中添加屏幕截图
    【解决方案2】:

    @Steve Zhao 谢谢!但是该解决方案复制了类似于原始情况的数据:

    我没有设法将这些数据视为 JSON,因此我最终将其视为可以操作成数组的文本。

    所以我按“行:”拆分文本并检索拆分的第二部分(表达式生成器中的数组从 1 开始):

    然后我将该文本拆分为一个数组:

    然后我可以展平(最后):

    从这里开始,我不断拆分这些值以获取我需要的数据 - 我对前两列和第四列感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多