@Override public DatasetReader<E> newReader() { LOG.debug("Getting reader for dataset:{}", this); return asRefinableView().newReader(); }
@Override public int run(String[] args) throws Exception { // Load the users dataset Dataset<Record> users = Datasets.load( "dataset:hdfs:/tmp/data/users", Record.class); // Get a reader for the dataset and read all the users DatasetReader<Record> reader = null; try { reader = users.with("favoriteColor", "green").newReader(); for (GenericRecord user : reader) { System.out.println(user); } } finally { if (reader != null) { reader.close(); } } return 0; }
private <T> Collection<T> readPojo(Class<T> targetClass, ViewCallback viewCallback) { Dataset<T> dataset = DatasetUtils.getDataset(dsFactory, targetClass); if (dataset == null) { throw new StoreException("Unable to locate dataset for target class " + targetClass.getName()); } DatasetReader<T> reader = null; if (viewCallback == null) { reader = dataset.newReader(); } else { RefinableView<T> view = viewCallback.doInView(dataset, targetClass); if (view != null) { reader = view.newReader(); } } List<T> results = new ArrayList<T>(); if (reader != null) { try { for (T r : reader) { results.add(r); } } finally { reader.close(); } } return results; }
RefinableView<GenericRecord> view = viewCallback.doInView(dataset, GenericRecord.class); if (view != null) { reader = view.newReader();
@Override public int run(String[] args) throws Exception { // Load the users dataset // Dataset is named [table].[entity] RandomAccessDataset<User> users = Datasets.load( "dataset:hbase:quickstart.cloudera/users.User", User.class); // Get an accessor for the dataset and look up a user by username Key key = new Key.Builder(users).add("username", "bill").build(); System.out.println(users.get(key)); System.out.println("----"); // Get a reader for the dataset and read the users from "bill" onwards DatasetReader<User> reader = null; try { reader = users.with("username", "bill").newReader(); for (User user : reader) { System.out.println(user); } } finally { if (reader != null) { reader.close(); } } return 0; }
private <T> void readWithCallback(Class<T> targetClass, RecordCallback<T> callback, ViewCallback viewCallback) { Dataset<T> dataset = DatasetUtils.getDataset(dsFactory, targetClass); if (dataset == null) { throw new StoreException("Unable to locate dataset for target class " + targetClass.getName()); } DatasetReader<T> reader = null; if (viewCallback == null) { reader = dataset.newReader(); } else { RefinableView<T> view = viewCallback.doInView(dataset, targetClass); if (view != null) { reader = view.newReader(); } } if (reader != null) { try { for (T t : reader) { callback.doInRecord(t); } } finally { reader.close(); } } }
@Test public void testReaderWriterCompatibleSchema() throws IOException { DatasetWriter<TestValue> writer = null; try { writer = Datasets.load(testValueView.getUri(), TestValue.class).newWriter(); writer.write(testValue); } finally { Closeables.close(writer, false); } DatasetReader<Value> reader = null; try { reader = valueView.newReader(); Assert.assertEquals(Sets.newHashSet(defaultValue), Sets.newHashSet((Iterable<Value>) reader)); } finally { Closeables.close(reader, false); } }