【问题标题】:Unable to read data from Map of Primitive data type from Cassandra DB using Scala无法使用 Scala 从 Cassandra DB 的原始数据类型映射中读取数据
【发布时间】:2018-06-11 23:20:13
【问题描述】:

在从 Scala 中的 Map(varchar,double) 类型的 Cassandra DB 读取数据时需要帮助。

我使用的是 Cassandra 核心 3.0,数据通过第三方 API 存储在数据库中,因此我无法更改类型

我尝试使用 row.getMap("column_name", classOf[String], classOf[Double])) 进行读取,但遇到以下错误:“IllegalArgumentException: Primitive type 'double' used as type parameter”

提前致谢。

【问题讨论】:

  • 您能否澄清一下您使用什么库/驱动程序(包括版本)来访问 Cassandra?
  • 我正在使用 cassandra-driver-core-3.3.2.jar

标签: java scala cassandra key-value-store typetoken


【解决方案1】:

我认为问题的原因是 getMap 返回 java.util.Map 并且标准 Java 集合不支持将值类型(也称为原始类型)作为通用键或值。而是使用包装器对象,例如java.lang.Double(另请参见autoboxing)。所以尝试类似

row.getMap("column_name", classOf[String], classOf[java.lang.Double])) 

【讨论】:

  • @priyankagoel,如果有效 - 将其标记为已接受答案 ;-)
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 2011-05-14
  • 2017-10-03
  • 2012-04-20
  • 2021-08-11
  • 2012-07-20
  • 2018-07-11
相关资源
最近更新 更多