/** Exercise 4 - Read a list of people from Cassandra */ private static void readPeopleFromCassandra(JavaSparkContext javaSparkContext) { SparkContextJavaFunctions sparkContextJavaFunctions = CassandraJavaUtil.javaFunctions(javaSparkContext); CassandraJavaRDD<Person> personCassandraJavaRDD = sparkContextJavaFunctions.cassandraTable( "test", "people", CassandraJavaUtil.mapRowTo(Person.class)); JavaRDD<String> readPeopleRDD = personCassandraJavaRDD.map(Person::toString); System.out.println( "Data as Person beans: \n" + StringUtils.join("\n", readPeopleRDD.collect())); // select id from test.people where id=45; JavaRDD<String> rdd4 = sparkContextJavaFunctions .cassandraTable("test", "people") .select("id") .where("id = 45") .map(CassandraRow::toString); System.out.println( "Data with only 'id' column fetched: \n" + StringUtils.join("\n", rdd4.collect())); }
/** Exercise 3 - Save a list of people to Cassandra */ private static void writePeopleToCassandra(JavaSparkContext javaSparkContext) { // here we are going to save some data to Cassandra... List<Person> people = Arrays.asList( Person.newInstance(1, "John", new Date()), Person.newInstance(2, "Anna", new Date()), Person.newInstance(3, "Andrew", new Date())); JavaRDD<Person> peopleRDD = javaSparkContext.parallelize(people); JavaPairRDD<Integer, Person> integerPersonJavaPairRDD = peopleRDD.keyBy(np -> np.getId()); RDDJavaFunctions<Person> cassandraPersonRDD = CassandraJavaUtil.javaFunctions(peopleRDD); cassandraPersonRDD .writerBuilder("test", "people", CassandraJavaUtil.mapToRow(Person.class)) .saveToCassandra(); }