Невозможно прочитать данные из типа данных Map of Primitive из базы данных Cassandra с помощью Scala

Нужна помощь в чтении данных из БД Cassandra типа Map(varchar,double) в Scala.

я использую Cassandra core 3.0, и данные хранятся в БД с помощью стороннего API, поэтому я не могу изменить тип

Я пытался читать с помощью row.getMap("column_name", classOf[String], classOf[Double])) но столкнулся со следующей ошибкой: "IllegalArgumentException: примитивный тип double используется как параметр типа"

Заранее спасибо.


person priyanka goel    schedule 02.01.2018    source источник
comment
Не могли бы вы уточнить, какую библиотеку/драйвер (включая версию) вы используете для доступа к Cassandra?   -  person SergGr    schedule 02.01.2018
comment
Я использую cassandra-driver-core-3.3.2.jar.   -  person priyanka goel    schedule 02.01.2018


Ответы (1)


Я считаю, что причина проблемы в том, что getMap возвращает java.util.Map, а стандартные коллекции Java не поддерживают типы значений (также известные как примитивные типы) в качестве общих ключей или значений. Вместо этого используются объекты-оболочки, такие как java.lang.Double. (см. также автоматическое упаковывание). Итак, попробуйте что-то вроде

row.getMap("column_name", classOf[String], classOf[java.lang.Double])) 
person SergGr    schedule 02.01.2018
comment
@priyankagoel, если это сработает - отметьте это как принятый ответ ;-) - person SergGr; 02.01.2018