目录
一、新建Mapping
可以在Kibana中建好mapping,也可以在api中写好,执行程序的时候创建。
这里在Kibana已经创建好
PUT /realweather
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"realtime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"geometry": {
"type": "geo_shape"
},
"tem": {
"type": "integer",
"index": false
},
"vis": {
"type": "double",
"index": false
}
}
}
}
- 日期类型设定为“date”,并设定好日期的格式为"yyyy-MM-dd HH:mm:ss"
- geometry存储的为网格,类型设定为“geo_shape”(polygon),在以坐标或网格检索的时候方便检索
- “index”: false 意思是该字段不作为索引字段,默认为true
二、导入ES依赖
Java REST Client 有两种风格:
-
Java Low Level REST Client :用于ES的低级客户端。它允许通过http与Elasticsearch集群通信。 将请求编排和响应反编排留给用户自己处理。 它兼容所有的Elasticsearch版本。
-
Java High Level REST Client :用于ES的高级客户端。它提供很多API,并负责请求的编排与响应的反编排。使用需与ES版本保持一致。
就好比是,一个是传自己拼接好的字符串,并且自己解析返回的结果;
而另一个是传对象,返回的结果也已经封装好了直接是对象,更加规范了参数的名称以及格式,更加面向对象
- 这里使用的是高级API客户端
<!-- ES -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.0.0</version>
</dependency>
三、程序实现
1、创建spark入口、创建ES客户端
- 因为后续要使用spark ml算法库进行建模训练数据,所以我这里是使用spark程序来实现的,用java也是一样的。
- 注意地址要写对,端口要使用9200,因为使用的是http
import java.math.BigDecimal
import java.text.SimpleDateFormat
import com.google.gson.JsonObject
import org.apache.http.HttpHost
import org.apache.spark.rdd.RDD
import org.apache

最低0.47元/天 解锁文章
2722

被折叠的 条评论
为什么被折叠?



