Как получить значения токенов при использовании данных искровой загрузки с Кассандры? - PullRequest
0 голосов
/ 03 января 2019

Я использую следующий код для загрузки данных из Кассандры:

val ts = spark
      .read
      .format("org.apache.spark.sql.cassandra")
      .options(Map("table" -> "t1", "keyspace" -> "keys"))
      .load()

, поэтому я могу получить все столбцы,

сейчас, я хочу получить токен одновременно,

я знаю, что в cql мы можем написать cql как "SELECT k,o, TOKEN(k) as t FROM keys.t1"

вопрос в том, как я могу получить токен в искре?Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 января 2019
connector.withSessionDo { session =>
      val res = session.execute("SELECT k,o,token(k) as t FROM keys.t1")
      import scala.collection.JavaConversions._
      for (row <- res) {
        println(row.getLong("t"))
      }
    }
0 голосов
/ 04 января 2019

У меня нет опыта работы с синтаксисом Spark.Но вы должны получать resultSet после выполнения запроса.

Предположим, ваш запрос выглядит примерно так: select token(<partitionKey(s)>) as fetched_token, column1, column2 from <table_name>.

При выполнении итерации по строкам из resultSet вы можете получить значение токена, напримерrow.getLong("fetched_token")

Надеюсь, это поможет вам.

...