我有一个如下所示的hashmap
Map(351608084641351 -> List(0.0, 0.0, 1.0, 0.0, 1.547012087E9, 85.099209, 25.578898, 0.0), 351608087410838 -> List(0.0, 0.0, 1.0, 0.0, 1.547013043E9, 74.356467, 22.301069, 0.0))
我想要列“id”,“d1”,“d2”,“d3”,“d4”,“evt”,“lt”,“ln”,“s” key
hashmap的351608084641351是id列。 List(0.0, 0.0, 1.0, 0.0, 1.547012087E9, 85.099209, 25.578898, 0.0)
是 "d1","d2","d3","d4","evt","lt","ln","s"
分别地
我想如上所述将这个hashmap存储到一个cassandra表中。
我可以访问这个hashmap的值和键,但是找不到在cassandra中存储它的方法我的hashmap是:hashmap[long,list[any]]
输出所需表格为:
id d1 d2 d3 d4 evt lt ln s
351608084641351 0.0 0.0 1.0 0.0 1.547012087E9 85.099209 25.578898 0.0
1条答案
按热度按时间mcvgt66p1#
可以在boundstatement上使用method.setmap。
由于datastax驱动程序是java来设置map的,所以我们需要使用javaconverter将scalamap转换成java map。此外,我们还需要使用java数据类型作为键和值,因为我可以看到,您将键和列表作为值,因此必须将它们转换为
java.lang.Long
以及Java.ArrayList<java.lang.Double>
使用方法long2Long
以及double2Double
.在绑定语句之后,您可以执行它,它应该被保存到数据库中。
假设您的Map与classof参数中提供的数据类型相同。这意味着您可以为Map提供相同的数据类型,或者必须将它们从scala转换为java。