【问题标题】:Does ROWCOUNT hint works for EXTRACT in U-SQLROWCOUNT 提示是否适用于 U-SQL 中的 EXTRACT
【发布时间】:2017-03-07 21:30:09
【问题描述】:

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

提取 xxxx 来自@“路径” 使用新的 RndsInDataLakeCode.PyramidExtractorMerged() 选项(行数=50000000); 有没有其他方法可以影响顶点分配

谢谢。

【问题讨论】:

  • 你的路径匹配了多少个文件?我的印象(到目前为止只尝试过 AvroExtractor)每个文件一个顶点,没有像 Hadoop 那样的文件拆分。
  • 此作业从 800 个文件中提取。

标签: azure-data-lake u-sql data-lake


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢 Michael,目前使用 60 个顶点提取 800 个文件需要 30 分钟,我想通过使用更多顶点来加快速度。这就是我想扩大规模的原因。
  • 您应该使用快速文件集预览功能。请通过电子邮件联系我进行设置。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2012-11-03
    相关资源
    最近更新 更多