本文整理了Java中com.yahoo.sketches.theta.Union
类的一些代码示例,展示了Union
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Union
类的具体详情如下:
包路径:com.yahoo.sketches.theta.Union
类名称:Union
[英]The API for Union operations
[中]用于联合操作的API
代码示例来源:origin: gchq/Gaffer
@Override
protected Union _apply(final Union a, final Union b) {
a.update(b.getResult());
return a;
}
}
代码示例来源:origin: apache/incubator-druid
@Override
public void reset(ColumnValueSelector selector)
{
union.reset();
fold(selector);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkHeapifyEstNoOverlapOrderedIn() {
int lgK = 12; //4096
int k = 1 << lgK;
int u = 4*k;
UpdateSketch usk1 = UpdateSketch.builder().setNominalEntries(k).build(); //2k estimating
UpdateSketch usk2 = UpdateSketch.builder().setNominalEntries(2 * k).build(); //2k exact for early stop test
for (int i=0; i<u/2; i++) usk1.update(i); //2k
for (int i=u/2; i<u; i++) usk2.update(i); //2k no overlap, exact, will force early stop
CompactSketch cosk2 = usk2.compact(true, null);
Union union = SetOperation.builder().setNominalEntries(k).buildUnion();
union.update(usk1); //update with heap UpdateSketch
union.update(cosk2); //update with heap Compact, Ordered input, early stop
UpdateSketch emptySketch = UpdateSketch.builder().setNominalEntries(k).build();
union.update(emptySketch); //updates with empty
emptySketch = null;
union.update(emptySketch); //updates with null
testAllCompactForms(union, u, 0.05);
Union union2 = (Union)SetOperation.heapify(Memory.wrap(union.toByteArray()));
testAllCompactForms(union2, u, 0.05);
union2.reset();
assertEquals(union2.getResult(true, null).getEstimate(), 0.0, 0.0);
}
代码示例来源:origin: apache/incubator-druid
public void updateUnion(Union union)
{
if (obj instanceof Memory) {
union.update((Memory) obj);
} else {
union.update(getSketch());
}
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void heapifyUnion() {
Union u1 = SetOperation.builder().buildUnion();
u1.update(1);
Memory mem = Memory.wrap(ByteBuffer.wrap(u1.toByteArray())
.asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
Union u2 = (Union) SetOperation.heapify(mem);
u2.update(2);
Assert.assertEquals(u2.getResult().getEstimate(), 2.0);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkUnionEarlyStop() {
int lgK = 10;
int k = 1<<lgK;
int u = 4*k; //4096 + 2048 = 6144
long v = 0;
int trials = 10;
UpdateSketch usk1 = UpdateSketch.builder().setNominalEntries(k).build();
UpdateSketch usk2 = UpdateSketch.builder().setNominalEntries(k).build();
Union union = SetOperation.builder().setNominalEntries(2 * k).buildUnion();
for (int t = 0; t < trials; t++) {
for (int i=0; i<u; i++) {
usk1.update(i + v);
usk2.update(i + v + u/2);
}
v += u + u/2;
CompactSketch csk1 = usk1.compact(true, null);
CompactSketch csk2 = usk2.compact(true, null);
Sketch pwSk = PairwiseSetOperations.union(csk1, csk2, 2 * k);
double pwEst = pwSk.getEstimate();
union.update(csk1);
union.update(csk2);
CompactSketch stdSk = union.getResult(true, null);
double stdEst = stdSk.getEstimate();
assertEquals(pwEst, stdEst, 0.0);
usk1.reset();
usk2.reset();
union.reset();
}
}
代码示例来源:origin: apache/incubator-druid
@Override
public Object get()
{
if (union == null) {
return SketchHolder.EMPTY;
}
//in the code below, I am returning SetOp.getResult(true, null)
//"true" returns an ordered sketch but slower to compute than unordered sketch.
//however, advantage of ordered sketch is that they are faster to "union" later
//given that results from the aggregator will be combined further, it is better
//to return the ordered sketch here
synchronized (this) {
return SketchHolder.of(union.getResult(true, null));
}
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkHeapifyEstNoOverlap() {
int lgK = 12; //4096
int k = 1 << lgK;
int u = 4*k;
UpdateSketch usk1 = UpdateSketch.builder().setNominalEntries(k).build(); //2k estimating
UpdateSketch usk2 = UpdateSketch.builder().setNominalEntries(2 * k).build(); //2k exact
for (int i=0; i<u/2; i++) usk1.update(i); //2k
for (int i=u/2; i<u; i++) usk2.update(i); //2k no overlap, exact
Union union = SetOperation.builder().setNominalEntries(k).buildUnion();
union.update(usk1); //update with heap UpdateSketch
union.update(usk2); //update with heap UpdateSketch, early stop not possible
testAllCompactForms(union, u, 0.05);
Union union2 = (Union)SetOperation.heapify(Memory.wrap(union.toByteArray()));
testAllCompactForms(union2, u, 0.05);
}
代码示例来源:origin: com.yahoo.bullet/bullet-core
@Override
protected void mergeUnionSketch() {
result = unionSketch.getResult(false, null);
unionSketch.reset();
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkMoveAndResize() {
int k = 1 << 12;
int u = 2 * k;
int bytes = Sketches.getMaxUpdateSketchBytes(k);
try (WritableDirectHandle wdh = WritableMemory.allocateDirect(bytes/2);
WritableDirectHandle wdh2 = WritableMemory.allocateDirect(bytes/2) ) {
WritableMemory wmem = wdh.get();
UpdateSketch sketch = Sketches.updateSketchBuilder().setNominalEntries(k).build(wmem);
assertTrue(sketch.isSameResource(wmem));
WritableMemory wmem2 = wdh2.get();
Union union = SetOperation.builder().buildUnion(wmem2);
assertTrue(union.isSameResource(wmem2));
for (int i = 0; i < u; i++) { union.update(i); }
assertFalse(union.isSameResource(wmem));
Union union2 = SetOperation.builder().buildUnion(); //on-heap union
assertFalse(union2.isSameResource(wmem2)); //obviously not
}
}
代码示例来源:origin: DataSketches/sketches-core
@Test(expectedExceptions = SketchesArgumentException.class)
public void checkBadSketchFamily() {
Union union = setOperationBuilder().buildUnion();
byte[] byteArr = union.toByteArray();
Memory srcMem = Memory.wrap(byteArr);
Sketches.getEstimate(srcMem); //Union is not a Theta Sketch, it is an operation
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkIsSameResource() {
int k = 16;
WritableMemory wmem = WritableMemory.wrap(new byte[(k*16) + 32]);
Memory roCompactMem = Memory.wrap(new byte[8]);
Union union = Sketches.setOperationBuilder().setNominalEntries(k).buildUnion(wmem);
assertTrue(union.isSameResource(wmem));
assertFalse(union.isSameResource(roCompactMem));
Intersection inter = Sketches.setOperationBuilder().buildIntersection(wmem);
assertTrue(inter.isSameResource(wmem));
assertFalse(inter.isSameResource(roCompactMem));
AnotB aNotB = Sketches.setOperationBuilder().buildANotB();
assertFalse(aNotB.isSameResource(roCompactMem));
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkHeapifyEstNoOverlapOrderedMemIn() {
int lgK = 12; //4096
int k = 1 << lgK;
int u = 4*k;
UpdateSketch usk1 = UpdateSketch.builder().setNominalEntries(k).build(); //2k estimating
UpdateSketch usk2 = UpdateSketch.builder().setNominalEntries(2 * k).build(); //2k exact for early stop test
for (int i=0; i<u/2; i++) usk1.update(i); //2k estimating
for (int i=u/2; i<u; i++) usk2.update(i); //2k no overlap, exact, will force early stop
WritableMemory cskMem2 = WritableMemory.wrap(new byte[usk2.getCurrentBytes(true)]);
usk2.compact(true, cskMem2); //ordered, loads the cskMem2 as ordered
Union union = SetOperation.builder().setNominalEntries(k).buildUnion();
union.update(usk1); //updates with heap UpdateSketch
union.update(cskMem2); //updates with direct CompactSketch, ordered, use early stop
UpdateSketch emptySketch = UpdateSketch.builder().setNominalEntries(k).build();
union.update(emptySketch); //updates with empty sketch
emptySketch = null;
union.update(emptySketch); //updates with null sketch
testAllCompactForms(union, u, 0.05);
Union union2 = (Union)SetOperation.heapify(Memory.wrap(union.toByteArray()));
testAllCompactForms(union2, u, 0.05);
union2.reset();
assertEquals(union2.getResult(true, null).getEstimate(), 0.0, 0.0);
}
代码示例来源:origin: apache/incubator-druid
static void updateUnion(Union union, Object update)
{
if (update instanceof SketchHolder) {
((SketchHolder) update).updateUnion(union);
} else if (update instanceof String) {
union.update((String) update);
} else if (update instanceof byte[]) {
union.update((byte[]) update);
} else if (update instanceof Double) {
union.update(((Double) update));
} else if (update instanceof Integer || update instanceof Long) {
union.update(((Number) update).longValue());
} else if (update instanceof int[]) {
union.update((int[]) update);
} else if (update instanceof long[]) {
union.update((long[]) update);
} else if (update instanceof List) {
for (Object entry : (List) update) {
union.update(entry.toString());
}
} else {
throw new ISE("Illegal type received while theta sketch merging [%s]", update.getClass());
}
}
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void wrapAndTryUpdatingUnion() {
Union u1 = SetOperation.builder().buildUnion();
u1.update(1);
Memory mem = Memory.wrap(ByteBuffer.wrap(u1.toByteArray())
.asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
Union u2 = (Union) Sketches.wrapSetOperation(mem);
Union u3 = Sketches.wrapUnion(mem);
Assert.assertEquals(u2.getResult().getEstimate(), 1.0);
Assert.assertEquals(u3.getResult().getEstimate(), 1.0);
try {
u2.update(2);
fail();
} catch (SketchesReadOnlyException e) {
//expected
}
try {
u3.update(2);
fail();
} catch (SketchesReadOnlyException e) {
//expected
}
}
代码示例来源:origin: DataSketches/sketches-core
union.update(cskA);
union.update(cskB);
cskC = union.getResult();
cskR = PairwiseSetOperations.union(cskA, cskB, k);
assertEquals(cskC.isEmpty(), cskR.isEmpty());
union.reset();
cskA = uskA.compact();
union.update(cskA);
union.update(cskB);
cskC = union.getResult();
cskR = PairwiseSetOperations.union(cskA, cskB, k);
assertEquals(cskC.isEmpty(), cskR.isEmpty());
union.reset();
代码示例来源:origin: gchq/Gaffer
@Override
public byte[] serialise(final Union union) throws SerialisationException {
return union.getResult().toByteArray();
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkHeapifyExact() {
int lgK = 9; //512
int k = 1 << lgK;
int u = k;
UpdateSketch usk1 = UpdateSketch.builder().setNominalEntries(k).build();
UpdateSketch usk2 = UpdateSketch.builder().setNominalEntries(k).build();
for (int i=0; i<u/2; i++) usk1.update(i); //256
for (int i=u/2; i<u; i++) usk2.update(i); //256 no overlap
assertEquals(u, usk1.getEstimate() + usk2.getEstimate(), 0.0); //exact, no overlap
Union union = SetOperation.builder().setNominalEntries(k).buildUnion();
union.update(usk1); //update with heap UpdateSketch
union.update(usk2); //update with heap UpdateSketch
testAllCompactForms(union, u, 0.0);
Union union2 = (Union)SetOperation.heapify(Memory.wrap(union.toByteArray()));
testAllCompactForms(union2, u, 0.0);
}
代码示例来源:origin: DataSketches/sketches-core
@Test(expectedExceptions = ClassCastException.class)
public void checkFamilyID() {
int k = 32;
Union union = SetOperation.builder().setNominalEntries(k).buildUnion();
byte[] byteArray = union.toByteArray();
Memory mem = Memory.wrap(byteArray);
Intersection inter1 = (Intersection) SetOperation.heapify(mem); //bad cast
println(inter1.toString());
}
代码示例来源:origin: org.apache.druid.extensions/druid-datasketches
@Override
public synchronized boolean isSameResource(Memory mem)
{
return delegate.isSameResource(mem);
}
内容来源于网络,如有侵权,请联系作者删除!