【问题标题】:how to EXTRACT against a ZIP file containing multiple CSV datasets如何提取包含多个 CSV 数据集的 ZIP 文件
【发布时间】:2019-09-18 20:42:43
【问题描述】:

我知道,如果我们只有 1 个包含 1 个 csv 文件的 zip 文件,我们可以简单地 EXTRACT 它:

DECLARE @file1 string = @"/input/input.csv.zip";

@file =
    EXTRACT col1 string,
            col2 string,
            col3 string
    FROM @file1
    USING Extractors.Csv(silent : true);

但是,如果我们在 1 个 zip 中有多个 csv 文件怎么办:

inputfiles.zip
-file1.csv
-file2.csv
-file3.csv

我们如何从inputfiles.zip 中提取/选择?

【问题讨论】:

    标签: azure-data-lake u-sql


    【解决方案1】:

    U-SQL 无法在本地提取它,但您可以创建自己的提取器来做到这一点。

    我使用了该代码并且它有效:

    https://ryansimpson.net/2016/10/15/query-zipfile-adla/

    【讨论】:

    • 一个完全有效的方法@JorgeRibeiro。就我个人而言,我更喜欢使用现有的组件,例如数据工厂,因为它们比自定义任务更容易调试,但是对于课程来说是马:)
    【解决方案2】:

    U-SQL 本身无法做到这一点。考虑首先使用数据工厂(例如,带有子项的 For Each 循环)来提取文件。

    最近解决了这个问题,上面的go-to blog post 看起来已经过时了,即 Azure 数据工厂的获取元数据任务不再处理 zip 文件。相反,复制任务可以直接完成。我尝试在不使用 GUI 屏幕图的情况下记录该方法:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多