【问题标题】:How to prepend a single line to a csv file in Azure Data Factory?如何在 Azure 数据工厂中的 csv 文件中添加一行?
【发布时间】:2021-03-05 00:24:10
【问题描述】:

我在 Azure Blob 存储中有一个 csv/txt 文件,格式为:

Column1 Column2 Column3
data data data

在文本文件中是这样的:

Column1、Column2、Column3等

数据、数据、数据等

我试图在 ADF 中添加一行作为文件的第一行,使其看起来像:

BATCH IMPORT,IMPORT 1.0(此行中包含逗号)

Column1、Column2、Column3等

数据、数据、数据等

我尝试使用合并文件,更改了分隔符,但似乎无法正常工作。预先添加此行后,无需处理数据。一旦添加了行,我将使用二进制复制活动将其发送到目的地。有没有什么方法可以在 ADF 中实现这一目标,而无需使用 Azure Functions 或 Batch Services 等外部资源?

感谢您提前提供帮助。

编辑:如果可能的话,我也很乐意为此使用 Azure Functions?

【问题讨论】:

  • BATCH IMPORT, IMPORT 1.0, 这个标题确定吗?不是动态生成的吗?
  • 标题是固定的,不是动态的。感谢你的回答!!会试一试

标签: azure csv azure-data-factory


【解决方案1】:

我们可以在 ADF 中使用data flow 来实现这一点。

  1. 我们可以将包含标题 BATCH IMPORT, IMPORT 1.0 的 csv 或文本文件添加到 Azure Blob 存储。

  2. 然后在source1 我们连接到源 csv。

  3. 在源数据集中选择No delimiter 数据预览如下:

  4. 添加另一个 headers.txt 源,其中包含单行 BATCH IMPORT, IMPORT 1.0

  5. 同理,在数据集中选择No delimiter 数据预览如下:

  6. 联合 headersource1 Union1 活动 数据预览如下:

  7. 然后我们可以沉入一个 csv

【讨论】:

    【解决方案2】:

    我们最近有同样的要求(嗯,我们想将行附加到 blob 中的 csv)。

    等待 5 分钟启动 Spark 集群来执行此操作似乎有点过头了,因此我们的解决方法是将其读入 SQL 中的表中,将数据附加到那里的 proc 中,然后写回 blob。

    也许不优雅,但它可以完成工作!

    【讨论】:

    • ELT 模式,使用您可用的计算,而不是启动新的计算(然后等待),我完全赞成。 +10 来自我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2021-12-25
    • 2022-11-04
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多