ROWCOUNT 提示是否适用于 U-SQL 中的 EXTRACT
Does ROWCOUNT hint works for EXTRACT in U-SQL
我想为提取作业分配更多的顶点,尝试使用 ROWCOUNT 提示,它似乎不起作用,无论我为 ROWCOUNT 使用什么值,U-SQL 总是分配相同的数字顶点数。
摘录 xxxx
来自@"Path"
使用新的 RndsInDataLakeCode.PyramidExtractorMerged()
选项(ROWCOUNT=50000000);
有没有其他方法可以影响顶点分配
谢谢。
您在提交作业时指定了多少 ADLU?这决定了一次可以 运行 的最大并行顶点数,并在提取的并行度上产生最大差异。只要文件可以按行拆分,USQL 绝对会将文件拆分成更小的部分并并行执行。如果文件是二进制格式(例如压缩)或 json,则必须在单个顶点上处理,因为这些格式不能直接拆分。
请注意,您指定的 ADLU 数量将保留用于工作期间,并且您需要为此付费。因此,您需要在更快的提取速度和整体作业时间之间取得平衡。
基本上,EXTRACT 使用的顶点数由以下因素决定:
- 文件数(目前每个顶点最多一个文件)如果您使用文件集或请求
AtomicFileProcessing=true
(例如,JSON,当前 Avro Extractor)。
- 如果文件被认为是可拆分的(
AtomicFileProcessing=false
,例如,Csv/Tsv 提取器),文件的大小(目前每个顶点 1GB)。
ROWCOUNT 提示只会提示会影响后续分区的结果行数。
然后 Omid 提到的分析单元分配将为您提供用于在确定的顶点数内并行化的实际并行度(因此过度指定分析单元将 NOT让你的代码更并行化)。
为什么要增加提取的横向扩展?
我想为提取作业分配更多的顶点,尝试使用 ROWCOUNT 提示,它似乎不起作用,无论我为 ROWCOUNT 使用什么值,U-SQL 总是分配相同的数字顶点数。
摘录 xxxx 来自@"Path" 使用新的 RndsInDataLakeCode.PyramidExtractorMerged() 选项(ROWCOUNT=50000000); 有没有其他方法可以影响顶点分配
谢谢。
您在提交作业时指定了多少 ADLU?这决定了一次可以 运行 的最大并行顶点数,并在提取的并行度上产生最大差异。只要文件可以按行拆分,USQL 绝对会将文件拆分成更小的部分并并行执行。如果文件是二进制格式(例如压缩)或 json,则必须在单个顶点上处理,因为这些格式不能直接拆分。
请注意,您指定的 ADLU 数量将保留用于工作期间,并且您需要为此付费。因此,您需要在更快的提取速度和整体作业时间之间取得平衡。
基本上,EXTRACT 使用的顶点数由以下因素决定:
- 文件数(目前每个顶点最多一个文件)如果您使用文件集或请求
AtomicFileProcessing=true
(例如,JSON,当前 Avro Extractor)。 - 如果文件被认为是可拆分的(
AtomicFileProcessing=false
,例如,Csv/Tsv 提取器),文件的大小(目前每个顶点 1GB)。
ROWCOUNT 提示只会提示会影响后续分区的结果行数。
然后 Omid 提到的分析单元分配将为您提供用于在确定的顶点数内并行化的实际并行度(因此过度指定分析单元将 NOT让你的代码更并行化)。
为什么要增加提取的横向扩展?