0

我想要达到的目标:

  • 我有一个包含以下列的 CSV (FlatnedListDocument.csv)

文档密钥、文档名称

示例值如下(此 CSV 文件中大约有 240,000 行):

12212,银河系搭便车徒步旅行者指南 12233,MoneyBall

  • 我必须为 CSV 文件中的每一行创建一个 JSON 文件,供另一个实用程序使用(每行一个文件)。
  • 我不知道如何将 CSV 表中的值推送到 ForEach 活动,以使其在 CSV 文件中迭代循环。
4

2 回答 2

2

这是在数据工厂中解决的一个非常有趣的问题。我看到的唯一选择是拥有一个带有 Sink 分区的数据流,该分区基于派生列输出文件。

  1. 创建一个生成唯一 blob 名称的派生列。请务必包含文件夹路径

在此处输入图像描述

  1. 在 Sink 中的 Settings 下,将“File name option”更改为“As data in column”,然后选择您在步骤 1 中创建的 FileName 列:

在此处输入图像描述

  1. 可选,但在“映射”下的接收器中,删除 FileName 列:

在此处输入图像描述 在此处输入图像描述

  1. 完成后,您应该将其保存在 Blob 存储中:

在此处输入图像描述

当然,需要注意的是文件名必须是唯一的,因此我基于示例中的第一列(我将其命名为“Id”)。我不知道 280K 文件的性能如何,但这应该会得到你想要的结果。

于 2020-09-18T15:15:25.350 回答
0

我已经实现了以下帮助我解决了我遇到的核心问题(读取 CSV 文件并将值传递给 ForEach 循环)。

第 1 步和第 2 步不是核心问题的一部分,但会帮助其他阅读本文的人了解 FlattenedListDocument.csv 是如何出现的。

整体架构

在此处输入图像描述

第一步:调用Web服务获取JSON文件(XML文件作为数据集,JSON文件作为sink)。

第 2 步:创建数据流以展平文件。创建一个 CSV 作为接收器(并将接收器分成 100 个相等的部分(以允许 CSV 文件中最多增长 500,000 条记录)。

在此处输入图像描述

第 3 步:对文件进行查找并获取其内容(这最终将包含在 GetMetadata / ForEach 循环中,该循环调用另一个管道以提取每个文件的内容)。

第 4 步:使用 ForEach 循环提取内容(这将调用另一个 WebService,并将管道中查找的 Name 值作为参数)。

在此处输入图像描述

于 2020-09-21T02:04:23.757 回答