java方式spark读取elasticsearch
时间: 2023-11-04 21:59:48 浏览: 116
spark写DSL读取elasticsearch数据(内附踩坑点)
可以通过以下步骤使用Java中的Spark来读取Elasticsearch:
1. 添加 Spark 和 Elasticsearch 的依赖:
```xml
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-spark-20_2.11</artifactId>
<version>6.0.0</version>
</dependency>
```
2. 创建 SparkConf 对象:
```java
SparkConf conf = new SparkConf()
.setAppName("Read from Elasticsearch")
.setMaster("local[*]")
.set("es.nodes", "localhost")
.set("es.port", "9200")
.set("es.nodes.wan.only", "true");
```
3. 创建 JavaSparkContext:
```java
JavaSparkContext jsc = new JavaSparkContext(conf);
```
4. 读取 Elasticsearch 索引:
```java
JavaRDD<HashMap<String, Object>> rdd = JavaEsSpark.esRDD(jsc, "my_index/docs");
```
其中,`my_index` 是 Elasticsearch 中的索引名称,`docs` 是类型名称。
5. 处理读取到的数据:
```java
List<HashMap<String, Object>> data = rdd.collect();
for (HashMap<String, Object> item : data) {
// 处理每个文档
}
```
这样就可以通过 Java 中的 Spark 读取 Elasticsearch 中的数据了。
阅读全文