gpt4 book ai didi

apache-spark - 是否有任何性能问题迫使在 spark 中使用计数进行急切评估?

转载 作者:行者123 更新时间:2023-12-04 04:20:03 25 4
gpt4 key购买 nike

一般我看Dataset.count在 3 个场景中的整个代码库:

  • 日志 log.info("this ds has ${dataset.count} rows")
  • 分支if (dataset.count > 0) do x else do y
  • 强制缓存 dataset.persist.count

  • 它是否会通过强制查询优化器在任何这些场景中过早地急切来阻止查询优化器创建最有效的 dag?

    最佳答案

    TL;博士 1) 和 2) 通常可以避免但不应该伤害您(忽略评估成本),3) 通常是有害的 Cargo cult programming实践。

    cache

    调用 count单独多半是浪费。虽然并不总是很简单,但日志记录可以用从监听器 ( here is and example for RDDs ) 检索到的信息替换,并且控制流要求通常(不总是)可以通过更好的管道设计来调节。

    单独它不会对执行计划产生任何影响(计数的执行计划,无论如何通常与父级的执行计划不同。通常Spark尽可能少做工作,因此它会删除执行计划的一部分,这不需要计算计数)。

    cache :
    countcache从与 RDD API 一起使用的模式中天真地复制是不好的做法。已经与RDDs争论不休,但与 DataFrame可以 break a lot of internal optimizations (选择和谓词下推)从技术上讲,is not even guaranteed to work .

    关于apache-spark - 是否有任何性能问题迫使在 spark 中使用计数进行急切评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50379782/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com