2015-11-05 1 views
0

Я использую искру в scala для создания общего приложения для распараллеливания http-звонков, и моя забота заключается в том, можно ли выполнить действие saveToCassandra на основе содержимого RDD, поскольку ответы должны идти в разные таблицы.saveToCassandra на основе контента от RDD

Для обеспечения большей ясности,

val queries: List[Query] = List(Query("google", "fish"), Query("yahoo", "chicken")) 
val inputRDD = sc.parallelize(queries) 

где

case class Query(dataSource: String, query: String) 

Каждый запрос затем отображается в список кортежей быть сохранены в Кассандре, но на основе источника данных в запросе, данные для google должны заходить в таблицу cassandra для google и для yahoo для собственной таблицы.

ТИА

ответ

1

Я просто фильтровать и сохранять отдельные подмножества:

val keywords = Map("google" -> "googletab", "yahoo" -> "yahootab") 
val keyspace: String = ??? 

val subsets = keywords.keys.map(k => 
    (k -> inputRDD.filter{case Query(x, _) => x == k})) 

subsets.foreach{ case (k, rdd) => 
    rdd.saveToCassandra(keyspace, keywords(k), SomeColumns(???)) 
} 
+0

briiliant !. Спасибо за это. –

 Смежные вопросы

  • Нет связанных вопросов^_^