3

我想为提取作业分配更多的顶点,尝试使用 ROWCOUNT 提示,它似乎不起作用,无论我为 ROWCOUNT 使用什么值,U-SQL 总是分配相同数量的顶点。

使用新的 RndsInDataLakeCode.PyramidExtractorMerged() OPTION(ROWCOUNT=50000000) 从 @"Path" 提取 xxxx;有没有其他方法可以影响顶点分配

谢谢。

4

2 回答 2

3

基本上 EXTRACT 使用的顶点数由以下决定:

  1. AtomicFileProcessing=true如果您使用文件集或请求(例如,JSON、当前的 Avro 提取器),则文件数(当前每个顶点最多一个文件)。
  2. AtomicFileProcessing=false如果文件被认为是可拆分的(例如,Csv/Tsv 提取器), 则文件的大小(当前每个顶点 1GB )。

ROWCOUNT 提示只会提示会影响后续分区的结果行数。

然后 Omid 提到的分析单元分配将为您提供用于在确定的顶点数量内并行化的实际并行度(因此过度指定分析单元不会使您的代码更多地并行化)。

为什么要增加提取的横向扩展?

于 2017-03-08T13:34:19.180 回答
0

您在提交作业时指定了多少 ADLU?这决定了一次可以运行的最大并行顶点数,并使提取的并行度产生最大差异。只要文件可以按行拆分,USQL 绝对会将文件分成更小的部分并并行执行。如果文件是二进制格式(例如压缩)或 json,则必须在单个顶点上处理,因为这些格式不能直接拆分。

请注意,您指定的 ADLU 数量将在工作期间保留,您将为此付费。因此,您需要在更快的提取和整体工作时间之间取得平衡。

于 2017-03-08T06:30:55.577 回答