val map=scala.collection.mutable.Map[String,AnyRef]() map.put("age","26".toLong.asInstanceOf[AnyRef]) map.put("name","ll") val map2=scala.collection.JavaConversions.mutableMapAsJavaMap(map) val indexRequest = new IndexRequest("hyj2017", "test","bbb").source(map2) proos.add(indexRequest) proos.awaitClose(10, TimeUnit.SECONDS); client.close()
scala调用api操作elasticsearch时long类型问题解决
在scala写spark程序的时候,为了方便控制,会调用java的api进行操作elasticsearch,这时候,需要一个map,接收具体的字段,这地方有会一个问题,就是接受的这个map必须是AnyRef类型的,比如我们需要存入一个long类型的值,比如时间是个long,那么直接写入就会有问题,因为scala里面AnyRef不包含数值类型,而是属于AnyVal类型。遇到这种情况,我们使用下面的方式,进行强制转换就能解决这个问题
猜你喜欢
转载自hanyingjun318.iteye.com/blog/2387099
今日推荐
周排行