Выполнение нескольких запросов cassandra и получение результата в одном RDD в Spark 2.3 - PullRequest
0 голосов
/ 07 марта 2019

У меня есть последовательность строк, которую я хочу использовать в предложении where моих запросов Cassandra.Таким образом, для каждой строки в последовательности будет один запрос.

idSeq.foreach(id => {
  val rdd1 = sc.cassandraTable("keyspace", "columnfamily").
  where("id = ?", id).
  limit(100)
})

Итак, я поставил цикл над своей последовательностью и выполняю запрос для каждого идентификатора в последовательности.Я хочу объединить все результаты в одном СДР и выполнить карту и операцию сохранения на объединенном СДР.Я попытался создать пустой RDD и выполнить объединение, но RDD остается пустым даже после цикла, и ничего не сохраняется.Как правильно это сделать?

Ответы [ 2 ]

1 голос
/ 07 марта 2019
sc.union(idSeq.map(id => {
    sc.cassandraTable("keyspace", "columnfamily").where("id = ?", id).limit(100)
}))
0 голосов
/ 28 марта 2019

Более быстрым и эффективным решением будет создание RDD с идентификаторами, которые вы хотите получить, а затем используйте joinWithCassandraTable для запроса данных от Cassandra.Например:

...