spark读取elasticSerach

news2025/1/15 13:11:28

搭建参考:我的这篇

elasticsearch搭建_我要用代码向我喜欢的女孩表白的博客-CSDN博客

为了方便测试,我们先建立个索引,如果没有索引,他也能插入,只是走的是默认插入格式。

不过虽然接触es已经4年了,但是在工作中,整体项目用es存储的机会还是比较少,所以我对索引不太熟悉,这里,就请大家勉为其难和我一起学习下,es的索引(熟手可跳过,直接看下面的开发部分)

下面需要记住的话

1.索引就相当于是es的数据库(7.x版本的es没有数据表的概念)

PUT http://IP:9200/test1

这个api能够建索引,默认情况下,创建的索引分片数量是 5 个,副本数量是 1 个。我的是单节点测试,所以分片和副本都不用管。分片的意思是将数据分成多少个部分,副本意思是多复制几份。如果是2个副本,那相当于总共创建了10个分片。

{
    "settings": {
        "number_of_shards": 2,
        "number_of_replicas": 1
    }
}
shards代表分片,repicas代表副本

修改索引,test1/_settings(意思为:索引名/设置索引)

 刚刚看了尚硅谷的es索引那块,太基础了,全使用的默认的,具体mapping分片之类的,如何分词都没有讲。

如果删除索引,请求类型就是DELTE

ip:9200/索引名


get类型查看索引

ip:9200/_cat/indices?v

显示所有索引


版本选择

我的ES版本是7.9.3

spark是2.4

scala是2.11.11

这几个是互相兼容的

 

Spark连接Es并且插入数据

pom导入依赖(scala版本)

注:java版本的请看参考连接中的阿里云ElasticSearch

elasticsearch-hadoop 和 elasticsearch-spark 是不同的两个连接器,es-hadoop是hive的,es-spark是spark的。并且不能互相存在,会提示冲突。建表语法也不一样。这里我们不用hql,纯用spark所以导入es-spark


 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>spark</groupId>
    <artifactId>sparkEs</artifactId>
    <version>1.0-SNAPSHOT</version>


    <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20 -->
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch-spark-20_2.11</artifactId>
            <version>7.9.3</version>
        </dependency>
    </dependencies>



</project>

代码

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext
import org.elasticsearch.spark.rdd.EsSpark
object SparkEs {

  def main(args: Array[String]): Unit = {

//    val conf = new SparkConf().setAppName("MyScalaWordCount").setMaster("local[1]")
    val  conf = new SparkConf().setAppName("readEs").setMaster("local[2]")
      .set("es.nodes", "es-cn-n6w1o1x0w001c****.Elasticsearch.aliyuncs.com")
      .set("es.port", "9200")
      .set("es.net.http.auth.user", "elastic")
      .set("es.net.http.auth.pass", "xxxxxx")
      .set("es.nodes.wan.only", "true")
      .set("es.nodes.discovery","false")
      .set("es.input.use.sliced.partitions","false")
      .set("es.resource", "index_name/_doc")
      .set("es.scroll.size","500");
    conf.set("es.index.auto.create","true")
    val sc = new SparkContext(conf)

    val num = Map("a"->1,"b"->2)
    EsSpark.esRDD(sc)//传入spark连接es的配置,通过ES类解析spark中es的配置,获取Es数据

    val rdd = sc.makeRDD(Seq(num))
    EsSpark.saveToEs(rdd,"spark/doc")

  }
}

参考:

spark 使用elasticsearch-spark connector读取ES 跳坑记录 - 简书

https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20_2.11/7.9.3


 

如何使用DLASpark访问阿里云Elasticsearch_云原生数据湖分析-阿里云帮助中心

Apache Spark support | Elasticsearch for Apache Hadoop [7.9] | Elastic

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XSS攻击原理及预防方法

XSS攻击通常都是通过跨站指令代码攻击网站的后台漏洞。它和信息隐性代码攻击攻击的目标不同。前者是透过从Web前端输入信息至网站&#xff0c;导致网站输出了被恶意控制的网页内容&#xff0c;使得系统安全遭到破坏。而后者则是输入了足以改变系统所执行之SQL语句内容的字串&am…

【解决方案】一种简单且实用的化工厂人员定位系统

化工厂人员定位系统是推进我国安全生产状况持续稳定好转的有效载体&#xff0c;对化工行业的科学发展、安全发展起着重要的促进作用。 化工厂安全责任重于泰山&#xff0c;一旦发生事故后果不堪设想。目前&#xff0c;化工企业还存在着缺乏实时监督、缺乏主动干预、缺乏精准救援…

SpringCloud(9)— Elasticsearch聚合和自动补全

SpringCloud&#xff08;9&#xff09;— Elasticsearch聚合和自动补全 一 数据聚合 1.聚合的分类 聚合&#xff08;aggregations&#xff09;可以实现对文档数据的统计&#xff0c;分析&#xff0c;运算。常见的聚合有三种&#xff1a; 1.桶聚合&#xff08;Bucket&#x…

磁场传感器调研报告

目录 一.磁场传感器 二.磁场传感器工作原理 2.1霍尔效应原理 2.2霍尔传感器工作原理 三.磁场传感器分类介绍 3.1磁阻敏感器 3.2磁性液体加速度传感器 3.3磁性液体水平传感器 四.磁性传感器的应用 4.1汽车 4.2消费类电子产品 4.3工业智能控制和自动化 五、总结 一.…

iftop工具(网卡流量监控软件)的使用

直接运行iftop&#xff0c;不加任何参数 界面显示 界面上面显示的是类似刻度尺的刻度范围&#xff0c;为显示流量图形的长条作标尺用的。 中间的< >这两个左右箭头&#xff0c;表示的是流量的方向。 TX&#xff1a;发送流量 RX&#xff1a;接收流量 TOTAL&#xff1a;总…

open-local部署之后k8s的kube-scheduler挂掉问题

搭建一套k8s集群之后&#xff0c;本地存储化方案选择了阿里巴巴的open-local&#xff0c;没部署open-local&#xff0c;k8s 的kube-scheduler一切正常&#xff0c;只要按照官方文档部署了open-local&#xff0c;k8s的kube-scheduler就会挂掉&#xff0c;不是被kill掉&#xff…

Go的并发模型

Go的并发模型 文章目录Go的并发模型一、GO并发模型的三要素1.1 操作系统的用户空间和内核空间1.2 线程模型的实现&#xff08;1&#xff09;用户级线程模型&#xff08;2&#xff09;内核级线程模型&#xff08;3&#xff09;两级线程模型1.3 GO线程实现模型MPG二、什么是gorou…

选择题

目录 1058:选择题 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 代码长度限制: 时间限制: 内存限制: 思路: 1.选择题结构体 1.2 选择题结构体代码 2.判断选择题是否做对函数 2.1 判断选择题是否做对函数代码: 3.选择题的输入…

【并发】深入理解JMM并发三大特性(二)

t【并发】深入理解JMM&并发三大特性&#xff08;二&#xff09; 我们在上一篇文章中提到了JMM内存模型&#xff0c;并发的三大特性&#xff0c;其中对可见性做了详细的讲解&#xff01; 这一篇文章&#xff0c;将会站在硬件层面继续深入讲解并发的相关问题&#xff01; …

将整数字符串转成整数值

题目&#xff1a; 给定一个字符串 str&#xff0c;如果str符合日常书写的整数形式&#xff0c;并且属于 32 位整数的范围&#xff0c;返回 str 所代表的整数值&#xff0c;否则返回 0 。 举例&#xff1a; str "123" 返回 123 str "023" 返回 23 …

springboot整合之统一异常处理

特别说明&#xff1a;本次项目整合基于idea进行的&#xff0c;如果使用Eclipse可能操作会略有不同&#xff0c;不过总的来说不影响。 springboot整合之如何选择版本及项目搭建 springboot整合之版本号统一管理 springboot整合mybatis-plusdurid数据库连接池 springboot整合…

FFmpeg简单使用:过滤器 ---- h264_mp4toannexb

H264有两种封装方式&#xff1a;字节流AnnexB格式 AVCC格式。 1. AnnexB格式 ---- 用于实时播放 开始前缀&#xff08;00000001或000001&#xff09;&#xff0b;NALU数据  绝大部分编码器的默认输出格式   一共有两种起始码start_code    ①3字节0x000001  单帧多s…

C++面向对象特性——多态

C面向对象之多态什么是多态&#xff1f;为什么使用多态&#xff1f;虚函数的定义虚函数的实现机制哪些函数不能被设置为虚函数&#xff1f;虚函数的访问指针访问引用访问对象访问成员函数中的访问构造函数和析构函数中访问纯虚函数抽象类虚析构函数重载、隐藏、覆盖菱形继承虚拟…

spring boot文档阅读笔记——01

目录标题一、文档地址二、第一个spring boot例子三、 Starters&#xff08;spring boot 官方提供的启动器&#xff09;四、SpringBootApplication注释&#xff08;一&#xff09;EnableAutoConfiguration&#xff08;二&#xff09;ComponentScan五、devtools&#xff08;热插拔…

当项目经理看世界杯决赛时…

12月18日&#xff0c;2022卡塔尔世界杯决赛&#xff0c;阿根廷在点球大战中击败卫冕冠军的法国队&#xff0c;捧走大力神杯。这场跌宕起伏的“巅峰对决”&#xff0c;给大家呈现了一场精彩绝伦的比赛。 当阿根廷2-0领先七十多分钟的时候&#xff0c;都以为这局稳了&#xff0c…

跨平台应用开发进阶(五十一):HTML5(富文本内容)连续数字、字母不自动换行问题分析及解决

文章目录一、前言二、问题分析三、解决方法3.1 对 input 标签设置3.2 对 input 标签内的 p 标签设置四、延伸阅读 顶部状态栏穿透问题五、拓展阅读一、前言 项目开发过程中&#xff0c;涉及在Web端维护富文本内容&#xff0c;通过APP端查看的相关的功能&#xff0c;功能描述大…

repo init详解

首先选择manifest源&#xff0c;一般直接使用清华或中科大的镜像源 repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest是清华提供的镜像源 repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest是中国科学技术大学的镜像源 repo init推荐使用-b 分…

未来汽车产业新生态高峰论坛在深圳举行

【2022年12月22日发自深圳】汽车产业正面临百年未有之大变局&#xff0c;以数字化技术为特征的智能网联汽车已经成为全球汽车产业转型升级的战略方向。汽车的属性也从一个机械化的交通工具转变成与各个生态相互连通的移动终端和数字空间。12月21日&#xff0c;由工业和信息化部…

【C++初阶】模板进阶

文章目录非类型模板参数模板特化函数模板特化类模板特化全特化偏特化模板的分离编译模板总结所有测试的代码非类型模板参数 模板参数分类类型形参与非类型形参 1.类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 2.非类型形…

创建城市人口总量趋势图

创建城市人口总量趋势图学习目标使用数据人口总量趋势方程数据导入对数据进行处理fct_reorder2的应用对数据进行整理对图像进行可视化操作使用fct_reorder2去掉趋势点内容小结学习目标 我们所采用的学习内容来自B站的Lizongzhang老师的R语言的学习分享 今天学习的主要内容是关…