如何在Azure Data Lake商店上预处理和解压缩.gz文件?

时间:2017-03-10 05:54:15

标签: azure azure-data-lake u-sql

USQL是否支持压缩和解压缩文件。

我想解压缩压缩文件以执行一些验证,一旦传递它们,就想将数据压缩到新文件。

2 个答案:

答案 0 :(得分:3)

此外,在OUTPUT上进行自动压缩是在路线图上。请将您的投票添加到https://feedback.azure.com/forums/327234-data-lake/suggestions/13418367-support-gzip-on-output-as-well

答案 1 :(得分:2)

根据主要scoped npm packages文章,U-SQL EXTRACT方法会自动识别GZip格式,因此您不需要做任何特别的事情。

  

从压缩数据中提取

     

通常,文件按原样传递   到UDO。一个例外是EXTRACT将识别GZip   压缩文件,文件扩展名为.gz并自动播放   将它们解压缩为提取过程的一部分。实际的UDO会   查看未压缩的数据。对于任何其他压缩方案,用户   将不得不编写自己的自定义提取器。请注意,U-SQL有一个   GZip压缩文件的上限为4GB。如果您申请   EXTRACT表达式大于此限制的文件,错误   E_RUNTIME_USER_MAXCOMPRESSEDFILESIZE正在筹集期间   汇编工作。

看起来此功能已推出一段时间,但在2016年11月更新以引入4GB限制。请参阅EXTRACT

这是一个简单的示例,它将gzip压缩的逗号分隔文件转换为管道分隔的文件:

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

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


@output =
    SELECT *
    FROM @file;


OUTPUT @output
TO "/output/output.txt"
ORDER BY col1
//FETCH 500 ROWS
USING Outputters.Text(quoting : false, delimiter : '|');