Spark Plan 之 SQLMetric

SQLMetric

Spark Plan 包含以下基本 方法,

  /**
   * @return All metrics containing metrics of this SparkPlan.
   */
  def metrics: Map[String, SQLMetric] = Map.empty

  /**
   * @return [[SQLMetric]] for the `name`.
   */
  def longMetric(name: String): SQLMetric = metrics(name)
BytesToBytesMap
public final class BytesToBytesMap extends MemoryConsumer {

  /**
   * Returns the average number of probes per key lookup.
   */
  public double getAvgHashProbesPerKey() {
    return (1.0 * numProbes) / numKeyLookups;
  }

  /**
   * Looks up a key, and saves the result in provided `loc`.
   *
   * This is a thread-safe version of `lookup`, could be used by multiple threads.
   */
  public void safeLookup(Object keyBase, long keyOffset, int keyLength, Location loc, int hash) {
    assert(longArray != null);

    numKeyLookups++;

    int pos = hash & mask;
    int step = 1;
    while (true) {
      numProbes++;
      if (longArray.get(pos * 2) == 0) {
        // This is a new key.
        loc.with(pos, hash, false);
        return;
      } else {
        long stored = longArray.get(pos * 2 + 1);
        if ((int) (stored) == hash) {
          // Full hash code matches.  Let's compare the keys for equality.
          loc.with(pos, hash, true);
          if (loc.getKeyLength() == keyLength) {
            final boolean areEqual = ByteArrayMethods.arrayEquals(
              keyBase,
              keyOffset,
              loc.getKeyBase(),
              loc.getKeyOffset(),
              keyLength
            );
            if (areEqual) {
              return;
            }
          }
        }
      }
      pos = (pos + step) & mask;
      step++;
    }
  }

这里, hashprobe 本质上就是一个 hash lookup 的过程

相关推荐
天冬忘忧36 分钟前
Spark 共享变量:广播变量与累加器解析
大数据·python·spark
天冬忘忧16 小时前
Spark 中的 RDD 分区的设定规则与高阶函数、Lambda 表达式详解
大数据·分布式·spark
天冬忘忧16 小时前
PySpark 数据处理实战:从基础操作到案例分析
大数据·python·spark
scc214016 小时前
spark的学习-04
学习·ajax·spark
武子康16 小时前
大数据-218 Prometheus 插件 exporter 与 pushgateway 配置使用 监控服务 使用场景
大数据·hive·hadoop·flink·spark·prometheus
scc214017 小时前
spark的学习-05
大数据·学习·spark
天冬忘忧19 小时前
Spark 的容错机制:保障数据处理的稳定性与高效性
大数据·分布式·spark
编码小袁1 天前
探索Apache Spark:现代数据处理的闪电利剑
大数据·spark·apache
BD_Marathon1 天前
DataFrame
spark
新知图书2 天前
Spark SQL大数据分析快速上手-DataFrame应用体验
spark