【问题标题】:azure data factory: how to merge all files of a folder into one file天蓝色数据工厂:如何将文件夹的所有文件合并到一个文件中
【发布时间】:2019-11-25 12:30:18
【问题描述】:

我需要创建一个大文件,通过合并分散在 Azure Blob Storage 中的几个子文件夹中的多个文件,还需要进行转换,每个文件都包含单个元素的 JSON 数组,所以最终文件,将包含一个 JSON 元素数组。

最终目的是在 Hadoop 和 MapReduce 作业中处理该大文件。

原始文件的布局是这样的:

folder
 - month-01
   - day-01
        - files...

- month-02
    - day-02
        - files...

【问题讨论】:

    标签: json azure azure-data-factory


    【解决方案1】:

    我根据你的描述做了一个测试,请按照我的步骤进行。

    我的模拟数据:

    test1.json 位于文件夹中:date/day1

    test2.json 位于文件夹中:date/day2

    Source DataSet,文件格式设置为Array of Objects,文件路径为root path

    Sink DataSet,设置文件格式设置为Array of Objects,文件路径设置为您要存储最终数据的文件。

    创建Copy Activity并将Copy behavior设置为Merge Files

    执行结果:

    我测试的目的地还是Azure Blob Storage,你可以参考这个link了解Hadoop支持Azure Blob Storage。

    【讨论】:

    • 太棒了,这正是我需要的,以前我错过了检查合并行为。
    • 我对一些文件进行了测试,它工作正常,现在我尝试合并所有文件(2M+ 文件,约 580MB),但只合并了 247 个文件,是否有这些任务的内在限制?
    • 知道是否可以仅使用数据流来做到这一点? (我的意思是专门采用一堆 json 对象并将它们“装箱”到父节点中)。我们以stream1开头的另一个词:{"name":"alex"}流中的下一项是:{"name":"liza"}我想要的结果集是[{"name":"alex"},{"name":"liza"}]
    • 这对于任何重要/计数的文件来说都非常慢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2023-02-06
    • 1970-01-01
    • 2020-05-10
    相关资源
    最近更新 更多