定制的并行提取 - U-SQL(Custom parallel extractor - U-SQL

2019-11-04 05:06发布

我尝试创建一个自定义并行提取,但我不知道怎么做是正确的。 我有一个大的文件(超过250 MB),其中的每一行数据都存储在4行。 一个文件行存储数据的一列。 这是可能创造工作平行提取大文件? 恐怕一行的数据,将在文件拆分后,不同程度。

例:

...
Data for first row
Data for first row
Data for first row
Data for first row
Data for second row
Data for second row
Data for second row
Data for second row
...

对不起我的英语不好。

Answer 1:

我想,你可以同时采用U-SQL顺序不处理这些数据。 你必须编写自定义应用器采取单/多行并返回单/多行。 然后,你可以用CROSS调用它应用。 您可以采取的帮助这个施放。



Answer 2:

U型SQL提取器默认缩放出并联在输入文件更小的部分,称为扩展工作。 这些范围是大约每大小250MB。

今天,你要上传的文件为行结构的文件,以确保该行与范围边界对齐(虽然我们将提供跨越边界的程度在不久的将来行的支持)。 在虽然无论哪种方式,提取UDO模型不知道,如果你的4行都是内部相同的程度或在它们之间。

所以,你有两个选择:

  1. 标记提取器上提取类之前添加以下行整个文件操作:

     [SqlUserDefinedExtractor(AtomicFileProcessing = true)] 

    现在提取会看到完整的文件。 但你失去了向外扩展的文件处理。

  2. 您提取每行一列,并使用U型SQL语句(如利用窗口函数或自定义减速机)的行合并成一行。



Answer 3:

我发现,我不能用静态方法来获得IExtractor实现的实例,使用的语句,如果我想在真正使用AtomicFileProcessing集。



文章来源: Custom parallel extractor - U-SQL