if (rand.nextBoolean()) { UnsafeRow key = batch.getKeyRow(rowId); Assert.assertTrue(checkKey(key, expectedK1[rowId], expectedK2[rowId]));
if (rand.nextBoolean()) { UnsafeRow key = batch.getKeyRow(rowId); Assert.assertTrue(checkKey(key, expectedK1[rowId], expectedK2[rowId]));
if (rand.nextBoolean()) { UnsafeRow key = batch.getKeyRow(rowId); Assert.assertTrue(checkKey(key, expectedK1[rowId], expectedK2[rowId]));
appendRow(batch, makeKeyRow(33, 33), makeValueRow(3, 3)); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 11, 11)); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 22, 22)); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2)); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 11, 11)); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 22, 22)); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 33, 33)); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
appendRow(batch, makeKeyRow(33, 33), makeValueRow(3, 3)); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 11, 11)); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 22, 22)); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2)); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 11, 11)); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 22, 22)); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 33, 33)); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
appendRow(batch, makeKeyRow(33, 33), makeValueRow(3, 3)); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 11, 11)); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 22, 22)); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2)); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 11, 11)); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 22, 22)); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 33, 33)); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 2, "B")); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 3, "C")); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 2, "B")); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 3, "C")); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); Assert.assertTrue(iterator.next()); UnsafeRow key2 = iterator.getKey(); UnsafeRow value2 = iterator.getValue(); Assert.assertTrue(checkKey(key2, 2, "B")); Assert.assertTrue(checkValue(value2, 2, 2)); Assert.assertTrue(iterator.next()); UnsafeRow key3 = iterator.getKey(); UnsafeRow value3 = iterator.getValue(); Assert.assertTrue(checkKey(key3, 3, "C")); Assert.assertTrue(checkValue(value3, 3, 3)); Assert.assertFalse(iterator.next());
Assert.assertEquals(3, batch.numRows()); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 1, "A")); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 2, "B")); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2));
Assert.assertEquals(3, batch.numRows()); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 1, "A")); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 2, "B")); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2));
@Test public void appendRowUntilExceedingCapacity() throws Exception { RowBasedKeyValueBatch batch = RowBasedKeyValueBatch.allocate(keySchema, valueSchema, taskMemoryManager, 10); try { UnsafeRow key = makeKeyRow(1, "A"); UnsafeRow value = makeValueRow(1, 1); for (int i = 0; i < 10; i++) { appendRow(batch, key, value); } UnsafeRow ret = appendRow(batch, key, value); Assert.assertEquals(batch.numRows(), 10); Assert.assertNull(ret); org.apache.spark.unsafe.KVIterator<UnsafeRow, UnsafeRow> iterator = batch.rowIterator(); for (int i = 0; i < 10; i++) { Assert.assertTrue(iterator.next()); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); } Assert.assertFalse(iterator.next()); } finally { batch.close(); } }
Assert.assertEquals(3, batch.numRows()); UnsafeRow retrievedKey1 = batch.getKeyRow(0); Assert.assertTrue(checkKey(retrievedKey1, 1, "A")); UnsafeRow retrievedKey2 = batch.getKeyRow(1); Assert.assertTrue(checkKey(retrievedKey2, 2, "B")); UnsafeRow retrievedValue1 = batch.getValueRow(1); Assert.assertTrue(checkValue(retrievedValue1, 2, 2));
@Test public void appendRowUntilExceedingCapacity() throws Exception { RowBasedKeyValueBatch batch = RowBasedKeyValueBatch.allocate(keySchema, valueSchema, taskMemoryManager, 10); try { UnsafeRow key = makeKeyRow(1, "A"); UnsafeRow value = makeValueRow(1, 1); for (int i = 0; i < 10; i++) { appendRow(batch, key, value); } UnsafeRow ret = appendRow(batch, key, value); Assert.assertEquals(batch.numRows(), 10); Assert.assertNull(ret); org.apache.spark.unsafe.KVIterator<UnsafeRow, UnsafeRow> iterator = batch.rowIterator(); for (int i = 0; i < 10; i++) { Assert.assertTrue(iterator.next()); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); } Assert.assertFalse(iterator.next()); } finally { batch.close(); } }
@Test public void appendRowUntilExceedingCapacity() throws Exception { RowBasedKeyValueBatch batch = RowBasedKeyValueBatch.allocate(keySchema, valueSchema, taskMemoryManager, 10); try { UnsafeRow key = makeKeyRow(1, "A"); UnsafeRow value = makeValueRow(1, 1); for (int i = 0; i < 10; i++) { appendRow(batch, key, value); } UnsafeRow ret = appendRow(batch, key, value); Assert.assertEquals(batch.numRows(), 10); Assert.assertNull(ret); org.apache.spark.unsafe.KVIterator<UnsafeRow, UnsafeRow> iterator = batch.rowIterator(); for (int i = 0; i < 10; i++) { Assert.assertTrue(iterator.next()); UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1)); } Assert.assertFalse(iterator.next()); } finally { batch.close(); } }
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1));
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1));
UnsafeRow key1 = iterator.getKey(); UnsafeRow value1 = iterator.getValue(); Assert.assertTrue(checkKey(key1, 1, "A")); Assert.assertTrue(checkValue(value1, 1, 1));