@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 void saveTestEntity(TestEntity entity) { ds.put(entity); }
/** * Construct a {@link Builder} for a {@link RandomAccessDataset}. */ public Builder(RandomAccessDataset dataset) { this.schema = dataset.getDescriptor().getSchema(); this.strategy = dataset.getDescriptor().getPartitionStrategy(); this.fieldNames = Sets.newHashSet(); for (FieldPartitioner fp : strategy.getFieldPartitioners()) { fieldNames.add(fp.getSourceName()); fieldNames.add(fp.getName()); } this.values = Maps.newHashMap(); }
ds.put(createSpecificEntity(0)); ds.put(createSpecificEntity(1)); DatasetWriter<TestEntity> writer = ds.newWriter(); try { for (int i = 2; i < 10; ++i) { .add("part1", "part1_" + iStr) .add("part2", "part2_" + iStr).build(); compareEntitiesWithString(i, ds.get(key)); DatasetReader<TestEntity> reader = ds.newReader(); try { for (TestEntity entity : reader) { ds.delete(key); TestEntity deletedRecord = ds.get(key); assertNull(deletedRecord);
@Override public DatasetReader<GenericRecord> newReader() throws IOException { return dataset.newReader(); }
/** * 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(); } }
ds.put(compositeEntity); Map<String, SpecificRecord> returnedCompositeEntity = ds.get(key); assertNotNull("found entity", returnedCompositeEntity); assertEquals("field1_1", ((SubEntity1)returnedCompositeEntity.get("SubEntity1")).getField1()); assertFalse(ds.put(compositeEntity)); assertTrue(ds.put(returnedCompositeEntity)); compositeEntity = new HashMap<String, SpecificRecord>(); compositeEntity.put("SubEntity1", subEntity1); ds.put(compositeEntity); returnedCompositeEntity = ds.get(new Key.Builder(ds).add("part1", "1").add("part2", "2").build()); assertNull(returnedCompositeEntity.get("SubEntity2"));
@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 write some users to it users.put(user("bill", "green")); users.put(user("alice", "blue")); users.put(user("cuthbert", "pink")); users.put(user("belinda", "yellow")); 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(); } }
@Test public void testBasic() { DatasetRepository repo = DatasetRepositories.repositoryFor(repositoryUri); repo.delete("default", "test"); repo.create("default", "test", descriptor); RandomAccessDataset<Object> ds = Datasets .<Object, RandomAccessDataset<Object>>load(URI.create("dataset:hbase:" + zk + "/test"), Object.class); Assert.assertNotNull("Should load dataset", ds); Assert.assertTrue(ds instanceof DaoDataset); Assert.assertEquals("Descriptors should match", repo.load("default", "test").getDescriptor(), ds.getDescriptor()); repo.delete("default", "test"); }
userActionsDataset.put(actionsModel);
/** * Print the user profiles and actions for all users with the provided last * name * * This method demonstrates how to open a scanner with a start key. It's using * the composite dao, so the records it returns will be a composite of both * the profile model and actions model. * * @param lastName * The last name of users to scan. */ public void printUserProfileActionsForLastName(String lastName) { // TODO: use a reader with a start key DatasetReader<UserProfileActionsModel2> reader = userProfileActionsDataset.newReader(); try { for (UserProfileActionsModel2 entity : reader) { UserProfileModel2 userProfile = entity.getUserProfileModel(); if (userProfile.getLastName().equals(lastName)) { System.out.println(entity.toString()); } } } finally { // readers need to be closed. reader.close(); } }
userActionsDataset.put(actionsModel);
/** * Print the user profiles and actions for all users with the provided last * name * * This method demonstrates how to open a scanner with a start key. It's using * the composite dao, so the records it returns will be a composite of both * the profile model and actions model. * * @param lastName * The last name of users to scan. */ public void printUserProfileActionsForLastName(String lastName) { // TODO: use a reader with a start key DatasetReader<UserProfileActionsModel2> reader = userProfileActionsDataset.newReader(); try { for (UserProfileActionsModel2 entity : reader) { UserProfileModel2 userProfile = entity.getUserProfileModel(); if (userProfile.getLastName().equals(lastName)) { System.out.println(entity.toString()); } } } finally { // readers need to be closed. reader.close(); } }
.setUserActionsModel(actionsModel).build(); if (!userProfileActionsDataset.put(profileActionsModel)) {
private void checkRecord(boolean shouldExist) { DatasetReader<TestEntity> dsReader = ds.newReader(); try { if (shouldExist) { assertTrue(dsReader.hasNext()); } else { assertFalse(dsReader.hasNext()); } } finally { dsReader.close(); } }
.setUserActionsModel(actionsModel).build(); if (!userProfileActionsDataset.put(profileActionsModel)) {