spark对elasticsearch增删查改
增
新建一个 dataframe
,插入到索引 _index/_type
,直接调用 saveToEs
,让 _id
为自己设定的 id
:
import org.elasticsearch.spark.sql._
def main(args: Array[String]): Unit = {
val spark = getSparkSession()
val dataFrame = spark.createDataFrame(Seq(
(1, 1, "2", "5"),
(2, 2, "3", "6"),
(3, 2, "36", "69")
)).toDF("id", "label", "col1", "col2")
dataFrame.saveToEs("_index/_type",Map("es.mapping.id" -> "id"))
}
//配置spark
def getSparkSession(): SparkSession = {
val masterUrl = "local"
val appName = "ttyb"
val sparkconf = new SparkConf()
.setMaster(masterUrl)
.setAppName(appName)
.set("es.nodes", "es的IP")
.set("es.port", "9200")
val Spark = SparkSession.builder().config(sparkconf).getOrCreate()
Spark
}
删
目前 spark
没有开放删除的 API
,所以删除只能用命令行:
curl -XDELETE 'http://es的IP:9200/_index/_type/_id'
查
根据时间范围查询,其中 query
可以为空,代表不以任何查询条件查询:
val startTime = "1519660800000"
val endTime = "1519747200000"
val query = "{\"query\":{\"range\":{\"recordtime\":{\"gte\":" + startTime + ",\"lte\":" + endTime + "}}}}"
val tableName = "_index/_type"
val botResultData = spark.esDF(tableName, query)
改
例如需要将 id=3
的 col1
改成 4
,col2
改成 7
,可以新建一个 dataframe
,按照 id
储存,这样 elasticsearch
就会自动覆盖相同 id
下的数据:
val dataFrame1 = spark.createDataFrame(Seq(
(3, 2, "4", "7")
)).toDF("id", "label", "col1", "col2")
dataFrame1.saveToEs("_index/_type",Map("es.mapping.id" -> "id"))
spark对elasticsearch增删查改的更多相关文章
- elasticsearch增删查改
创建结构化索引 put http://127.0.0.1:9200/person{ "settings" : { "number_of_shards": 3, ...
- Elasticsearch使用系列-ES增删查改基本操作+ik分词
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 一.安装可视化工具Kibana ES是一个NoSql数据库应用.和其他数据库 ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 3.EF 6.0 Code-First实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- jdbc的实例应用:增删查改实现
//在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...
- 用javascript实现html元素的增删查改[xyytit]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- hibernate基础增删查改简单实例
hibernate 基础理论知识网上很多,可以百度和google.这里不做多的介绍,以一个User表来开展例子 建一个web-project 我这里用了junit单元测试环境来进行增删查改的测试,别的 ...
随机推荐
- 对Inode、Hard Link以及Soft Link的理解
一.EXT2/EXT3等文件系统的分区格式 Linux的文件系统从EXT2开始将文件的属性和文件的实际内容分开存储,文件的属性由inode存储,文件的内容由block存储. 系统在对磁盘进行分区格式化 ...
- Python学习最佳路线图
python语言基础(1)Python3入门,数据类型,字符串(2)判断/循环语句,函数,命名空间,作用域(3)类与对象,继承,多态(4)tkinter界面编程(5)文件与异常,数据处理简介(6)Py ...
- Hive的DDL操作
DDL:data definittion language 数据定义语言 主要是定义或改变表的结构.数据类型.表之间的链接和约束等初始化操作 DML:data manipulation languag ...
- Anaconda使用指南
Anaconda使用指南 Anaconda介绍 什么是 Anaconda Anaconda是专注于数据分析的Python发行版本,包含了conda.Python等190多个科学包及其依赖项.作为好奇宝 ...
- 手写数字识别 ----Softmax回归模型官方案例注释(基于Tensorflow,Python)
# 手写数字识别 ----Softmax回归模型 # regression import os import tensorflow as tf from tensorflow.examples.tut ...
- KaliLinuxNetHunter教程刷入第三方Recovery与开始刷机
KaliLinuxNetHunter教程刷入第三方Recovery与开始刷机 2.刷入第三方Recovery(即TWRP) TWRP(TeamWin Recovery Project)是一款XDA大神 ...
- Mysql表的约束设计和关联关系设计
https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...
- JQuery模拟常见的拖拽验证
css部分 <style> #drag{ position: relative; background-color: #e8e8e8; width: 300px; height: 34px ...
- 用OleDb导入Excel时提示驱动错误问题解决办法
导入格式为xls的excel文件,发生了错误 未处理System.Data.OleDb.OleDbException HResult=-2147467259 Message=外部数据库驱动程序 (1) ...
- java课程之团队开发冲刺阶段1.3
一.总结昨天进度 1.完成任务指标,但是有些问题没有得到根本上解决,只是换方式解决了 2.使用时间:6小时 二.遇到的困难 1.在设置AlertDialog弹窗组件的时候,没有办法获取选中值,再实验多 ...