如何使用Data Lake Analytics将数据处理成最大大小的多个文件?

时间:2019-02-07 07:35:41

标签: azure-data-lake u-sql

我正在使用Azure Data Lake Analytics处理大量小的JSON文件,并且希望将结果保存到最大大小为例如128MB的多个JSON文件中(如果需要)

有可能吗?

我知道,有一个选项可以编写自定义输出程序,但是它只能逐行写入,因此我没有有关整个文件大小的信息。 (我猜)。

U-SQL中有FILE.LENGTH()属性,它为我提供了每个提取文件的大小。是否可以使用它重复调用不同文件的输出,并仅将适合我的大小限制的文件传递给它?

谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

以下是您可以使用FILE.LENGTH进行操作的示例。

@yourData = 
  EXTRACT 
          // ... columns to extract
        , file_size = FILE.LENGTH()
  FROM "/mydata/{*}" //input files path
  USING Extractors.Csv();

@res =
  SELECT *
  FROM @yourData 
  WHERE file_size < 100000;  //Your file size