com.clearspring.analytics.stream.quantile.QDigest.unionOf()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(2.8k)|赞(0)|评价(0)|浏览(65)

本文整理了Java中com.clearspring.analytics.stream.quantile.QDigest.unionOf方法的一些代码示例,展示了QDigest.unionOf的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QDigest.unionOf方法的具体详情如下:
包路径:com.clearspring.analytics.stream.quantile.QDigest
类名称:QDigest
方法名:unionOf

QDigest.unionOf介绍

暂无

代码示例

代码示例来源:origin: addthis/stream-lib

public static QDigest unionOf(QDigest a, QDigest b) {
  if (a.compressionFactor != b.compressionFactor) {
    throw new IllegalArgumentException(
        "Compression factors must be the same: " +
        "left is " + a.compressionFactor + ", " +
        "right is " + b.compressionFactor);
  }
  if (a.capacity > b.capacity) {
    return unionOf(b, a);
  }
  QDigest res = new QDigest(a.compressionFactor);
  res.capacity = a.capacity;
  res.size = a.size + b.size;
  for (long k : a.node2count.keySet()) {
    res.node2count.put(k, a.node2count.get(k));
  }
  if (b.capacity > res.capacity) {
    res.rebuildToCapacity(b.capacity);
  }
  for (long k : b.node2count.keySet()) {
    res.node2count.put(k, b.get(k) + res.get(k));
  }
  res.compressFully();
  return res;
}

代码示例来源:origin: addthis/stream-lib

for (long x : bSamples) b.offer(x);
for (long x : allSamples) c.offer(x);
QDigest ab = QDigest.unionOf(a, b);

代码示例来源:origin: addthis/stream-lib

/**
   * Test for bug identified and corrected by http://github.com/addthis/stream-lib/pull/53
   */
  @Test
  public void testSerialization() {
    long[] samples = {0, 20};
    QDigest digestA = new QDigest(2);

    for (int i = 0; i < samples.length; i++) {
      digestA.offer(samples[i]);
    }
    byte[] serialized = QDigest.serialize(digestA);

    QDigest deserializedA = QDigest.deserialize(serialized);

    QDigest digestB = new QDigest(2);
    for (int i = 0; i < samples.length; i++) {
      digestB.offer(samples[i]);
    }

    QDigest.unionOf(digestA, deserializedA);

  }
}

代码示例来源:origin: addthis/stream-lib

System.arraycopy(samples[j], 0, total, offset, samples[j].length);
offset += samples[j].length;
totalDigest = QDigest.unionOf(totalDigest, digests[j]);
expectedSize += samples[j].length;

代码示例来源:origin: LiveRamp/cascading_ext

@Override
public QDigest finalAggregate(QDigest aggregate, TupleEntry partialAggregate) {
 QDigest partial = QDigest.deserialize(Bytes.getBytes((BytesWritable)partialAggregate.getObject(0)));
 return QDigest.unionOf(aggregate, partial);
}

代码示例来源:origin: com.addthis/stream-lib

public static QDigest unionOf(QDigest a, QDigest b) {
  if (a.compressionFactor != b.compressionFactor) {
    throw new IllegalArgumentException(
        "Compression factors must be the same: " +
        "left is " + a.compressionFactor + ", " +
        "right is " + b.compressionFactor);
  }
  if (a.capacity > b.capacity) {
    return unionOf(b, a);
  }
  QDigest res = new QDigest(a.compressionFactor);
  res.capacity = a.capacity;
  res.size = a.size + b.size;
  for (long k : a.node2count.keySet()) {
    res.node2count.put(k, a.node2count.get(k));
  }
  if (b.capacity > res.capacity) {
    res.rebuildToCapacity(b.capacity);
  }
  for (long k : b.node2count.keySet()) {
    res.node2count.put(k, b.get(k) + res.get(k));
  }
  res.compressFully();
  return res;
}

相关文章