@Override public void close() throws IOException { if (reader != null) { reader.close(); reader = null; closed = true; } }
@Override public boolean isOpen() { return wrappedReader.isOpen(); }
public static <R> void checkReaderBehavior( DatasetReader<R> reader, int totalRecords, RecordValidator<R> validator) { // this is now used for both initialized and not initialized records because // initialization now happens automatically in newReader if (!reader.isOpen() && reader instanceof InitializeAccessor) { ((InitializeAccessor) reader).initialize(); } try { Assert.assertTrue("Reader should be open", reader.isOpen()); checkReaderIteration(reader, totalRecords, validator); } finally { reader.close(); } Assert.assertFalse("Reader is open after close()", reader.isOpen()); }
try { try { if (!reader.isOpen() && reader instanceof InitializeAccessor) { ((InitializeAccessor) reader).initialize(); Assert.assertTrue("Reader is not open after open()", reader.isOpen()); reader.remove(); Assert.fail("Remove before iteration succeeded"); } catch (IllegalStateException ex) { reader.remove(); Assert.fail("Remove after last hasNext() succeeded"); } catch (IllegalStateException ex) { reader.close();
public static <R> void checkReaderIteration(DatasetReader<R> reader, int expectedRecordCount, RecordValidator<R> validator) { int recordCount = 0; Assert.assertTrue("Reader is not open", reader.isOpen()); Assert.assertTrue("Reader has no records, expected " + expectedRecordCount, (expectedRecordCount == 0) || reader.hasNext()); for (R record : reader) { // add calls to hasNext, which should not affect the iteration validator.validate(record, recordCount); Assert.assertNotNull(record); reader.hasNext(); recordCount++; } Assert.assertFalse("Reader is empty, but hasNext is true", reader.hasNext()); // verify that NoSuchElementException is thrown when hasNext returns false try { reader.next(); Assert.fail("Reader did not throw NoSuchElementException"); } catch (NoSuchElementException ex) { // this is the correct behavior } Assert.assertTrue("Reader is empty, but should be open", reader.isOpen()); // verify the correct number of records were produced // if hasNext advances the reader, then this will be wrong Assert.assertEquals("Incorrect number of records", expectedRecordCount, recordCount); }
@Override public void close() { wrappedReader.close(); }
@Override public boolean isOpen() { return wrappedReader.isOpen(); }
@Override public void close() { wrappedReader.close(); }
/** * Print all user profiles. * * This method demonstrates how to open a reader that will read the entire * table. It has no start or stop keys specified. */ public void printUserProfies() { DatasetReader<UserProfileModel2> reader = userProfileDataset.newReader(); try { for (UserProfileModel2 userProfile : reader) { System.out.println(userProfile.toString()); } } finally { // readers need to be closed. reader.close(); } }
@Override public int run(String[] args) throws Exception { // Load the events dataset Dataset<GenericRecord> events = Datasets.load("dataset:hive:/tmp/data/default/events"); // Get a reader for the dataset and read all the events DatasetReader<GenericRecord> reader = events.newReader(); try { for (GenericRecord event : reader) { System.out.println(event); } } finally { reader.close(); } return 0; }
@Override public int run(String[] args) throws Exception { Dataset<Record> movies = Datasets.load( "dataset:hdfs:/tmp/data/movies", Record.class); DatasetReader<Record> reader = null; try { reader = movies.newReader(); for (Record rec : reader) { System.err.println("Movie: " + rec); } } finally { if (reader != null) { reader.close(); } } return 0; }
/** * Print all user profiles. * * This method demonstrates how to open a reader that will read the entire * table. It has no start or stop keys specified. */ public void printUserProfies() { DatasetReader<UserProfileModel2> reader = userProfileDataset.newReader(); try { for (UserProfileModel2 userProfile : reader) { System.out.println(userProfile.toString()); } } finally { // readers need to be closed. reader.close(); } }
@Override public int run(String[] args) throws Exception { // Load the products dataset Dataset<Product> products = Datasets.load( "dataset:hdfs:/tmp/data/products", Product.class); // Get a reader for the dataset and read all the users DatasetReader<Product> reader = null; try { reader = products.newReader(); for (Product product : reader) { System.out.println(product); } } finally { if (reader != null) { reader.close(); } } return 0; }