USQL是否支持压缩和解压缩文件。
我想解压缩压缩文件以执行一些验证,一旦传递它们,就想将数据压缩到新文件。
答案 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 : '|');