Я использую сервер заданий spark и использую spark-sql для получения данных из таблицы cassandra следующим образом.
public Object runJob(JavaSparkContext jsc, Config config) {
CassandraSQLContext sq = new CassandraSQLContext(JavaSparkContext.toSparkContext(jsc));
sq.setKeyspace("rptavlview");
DataFrame vadevent = sq.sql("SELECT username,plan,plate,ign,speed,datetime,odo,gd,seat,door,ac from rptavlview.vhistory ");
vadevent.registerTempTable("history");
sq.cacheTable("history");
DataFrame vadevent1 = sq.sql("SELECT plate,ign,speed,datetime FROM history where username='"+params[0]+"' and plan='"+params[1]+"'");
long count = vadevent.rdd().count();
}
Но я получаю таблица не найдена история. Может ли кто-нибудь упомянуть, как кэшировать данные cassandra в искровой памяти и повторно использовать одни и те же данные либо в одновременных запросах одного и того же задания, либо в виде двух заданий, одно для кэширования, а другое для запросов.
Я использую dse5.0.4, поэтому версия spark 1.6.1.