经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Scala

浅谈Scala模式匹配

一.scala模式匹配(pattern matching) pattern matching可以说是scala中十分强大的一个语言特性,当然这不是scala独有的,但这不妨碍它成为scala的语言的一大利器。 scala的pattern matching是类似这样的, e ma...[2020/6/29]

akka-typed(8) - CQRS读写分离模式

 前面介绍了事件源(EventSource)和集群(cluster),现在到了讨论CQRS的时候了。CQRS即读写分离模式,由独立的写方程序和读方程序组成,具体原理在以前的博客里介绍过了。akka-typed应该自然支持CQRS模式,最起码本身提供了对写方编程的支持,这点从Ev...[2020/6/26]

Scala 环境搭建及IDEA工具的配置使用教程

Scala的环境搭建 由于scala是基于java来开发的, 编写的java类可以使用javac命令编译成.cla 文件被JVM加载到内存中执行 ! 那么scala可以通过scalac命令将编写的scala文件编译成.cla 文件一样被JVM加载到内存中,因此Scala是运行在JVM平台上的,...[2020/6/23]

akka-typed(7) - cluster:sharding, 集群分片

  在使用akka-typed的过程中发现有很多地方都简化了不少,变得更方便了,包括:Supervision,只要用Behaviors.supervise()把Behavior包住,很容易就可以实现这个actor的SupervisorStrategy.restartWithBa...[2020/6/15]

akka-typed(6) - cluster:group router, cluster-load-balancing

先谈谈akka-typed的router actor。route 分pool router, group router两类。我们先看看pool-router的使用示范: val pool = Routers.pool(poolSize = 4)( ma...[2020/6/12]

akka-typed(4) - EventSourcedBehavior in action

akka-typed(4) - EventSourcedBehavior in action

  前面提到过,akka-typed中较重要的改变是加入了EventSourcedBehavior。也就是说增加了一种专门负责EventSource模式的actor, 最终和其它种类的actor一道可以完美实现CQRS。新的actor,我还是把它称为persistentActo...[2020/6/8]

kka-typed(5) - cluster:集群节点状态监视

 akka-cluster对每个节点的每种状态变化都会在系统消息队列里发布相关的事件。通过订阅有关节点状态变化的消息就可以获取每个节点的状态。这部分已经在之前关于akka-cluster的讨论里介绍过了。由于akka-typed里采用了新的消息交流协议,而系统消息的发布和订阅也...[2020/6/8]

akka-typed(3) - PersistentActor has EventSourcedBehavior

akka-typed(3) - PersistentActor has EventSourcedBehavior

   akka-typed中已经没有PersistentActor了。取而代之的是带有EventSourcedBehavior的actor,也就是一种专门支持EventSource模式的actor。EventSource的原理和作用在之前的博客里已经有了比较详细的介绍...[2020/6/3]

akka-typed(2) - typed-actor交流方式和交流协议

   akka系统是一个分布式的消息驱动系统。akka应用由一群负责不同运算工作的actor组成,每个actor都是被动等待外界的某种消息来驱动自己的作业。所以,通俗点描述:akka应用就是一群actor相互之间发送消息的系统,每个actor接收到消息后开始自己负责的...[2020/5/29]

akka-typed(1) - actor生命周期管理

   akka-typed的actor从创建、启用、状态转换、停用、监视等生命周期管理方式和akka-cla ic还是有一定的不同之处。这篇我们就介绍一下akka-typed的actor生命周期管理。 每一种actor都是通过定义它的行为属性behavior形成模版...[2020/5/28]

akka-typed(0) - typed-actor, typed messages

   akka 2.6.x正式发布以来已经有好一段时间了。核心变化是typed-actor的正式启用,当然persistence,cluster等模块也有较大变化。一开始从名称估摸就是把传统any类型的消息改成强类型消息,所以想拖一段时间看看到底能对我们现有基于akk...[2020/5/26]

一起学scala--Map&Tuple

Map(映射)是一种可迭代的键值对集合。在scala中使用映射非常简单。 构造Map inmutable Map(不可变映射,值不可变) 具有初始值 在scala中->操作符是用来创建键值对元组的。 val inmutableMap = Map(("yolee...[2020/5/26]

一起学scala--控制结构和函数

条件表达式 与java/c++不同的是,scala中 if / else语法是有返回值的,这个值就是跟在if / else 之后的最后一个表达式的值。 val s:String = if(1 > 0) "yes" else "no" ...[2020/5/20]

search(13)- elastic4s-histograms:聚合直方图

在聚合的分组统计中我们会面临两种分组元素类型:连续型如时间,自然数等、离散型如地点、产品等。离散型数据本身就代表不同的组别,但连续型数据则需要手工按等长间隔进行切分了。下面是一个按价钱段聚合的例子: POST /cartxn _search { "size" : 1, "ag...[2020/5/18]

search(14)- elastic4s-统计范围:global, filter,post-filter bucket

  聚合一般作用在query范围内。不带query的aggregation请求实际上是在match_all{}查询范围内进行统计的: GET /cartxn _search { "aggs": { "all_colors": { "terms": {...[2020/5/18]

系统学习scala--基础

系统学习scala--基础

scala基础 安装scala(不推荐使用最新版本,2.11.x够用了) scala官网 2.11.12版本下载页面 这里我选择2.11.12版本,在下载页面往下拉,选择scala-2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议...[2020/5/18]

search(12)- elastic4s-聚合=桶+度量

这篇我们介绍一下ES的聚合功能(aggregation)。聚合是把索引数据可视化处理成可读有用数据的主要工具。聚合由bucket桶和metrics度量两部分组成。 所谓bucket就是SQL的GROUPBY,如下: GET /cartxn _search { "size" : ...[2020/5/13]

search(10)- elastic4s-multi_match:多字段全文搜索

   在全文搜索中我们常常会在多个字段中匹配同一个查询条件或者在不同的字段中匹配不同的条件。比如下面这个例子: GET /book _search { "query": { "bool": { "should": [ { "...[2020/5/11]

search(11)- elastic4s-模糊查询

search(11)- elastic4s-模糊查询

很多时候搜索用户对查询语句具有模糊感觉,他们只能提供大约的描述。比如一个语句的部分,或者字句顺序颠倒等。通过模糊查询可以帮助用户更准确的找出他们希望搜索的结果。 模糊查询包括前后缀,语句(phrase)查询。前缀查询在非文本查询和全文查询字段中使用是有着不同的效果:在非文本字段查询中我...[2020/5/11]

search(9)- elastic4s logback-appender

前面写了个ca andra-appender,一个基于ca andra的logback插件。正是ca andra的分布式数据库属性才合适作为akka-cluster-sharding分布式应用的logger。所以,ca andra-appender核心功能就是对logback消息的存写部...[2020/5/6]

search(8)- elastic4s-search-query模式

  上篇提过query模式除对记录的筛选之外还对符合条件的记录进行了评分,即与条件的相似匹配程度。我们把评分放在后面的博文中讨论,这篇我们只介绍query查询。 查询可以分为绝对值查询和全文查询:绝对值查询是指非text类型字段的查询,全文查询一般指对于text字段的查询。如...[2020/4/28]

search(7)- elastic4s-search-filter模式

 现在我们可以开始探讨ES的核心环节:搜索search了。search又分filter,query两种模式。filter模式即筛选模式:将符合筛选条件的记录作为结果找出来。query模式则分两个步骤:先筛选,然后对每条符合条件记录进行相似度计算。就是多了个评分过程。如果我们首先...[2020/4/27]

search(6)- elastic4s-CRUD

    如果我们把ES作为某种数据库来使用的话,必须熟练掌握ES的CRUD操作。在这之前先更正一下上篇中关于检查索引是否存在的方法:elastic4s的具体调用如下: 删除索引 val rspExists = client.execute(indexEx...[2020/4/21]

Kafka 2.5.0发布——弃用对Scala2.11的支持

近日Kafka发布了最新版本 2.5.0,增加了很多新功能: 下载地址:https: kafka.apache.org/downloads#2.5.0 对TLS 1.3的支持(默认为1.2) 引入用于 Kafka Streams 的 Co-groups 用于 Ka...[2020/4/21]

search(5)- elastic4s-构建索引

search(5)- elastic4s-构建索引

  按照计划,这篇开始尝试用elastic4s来做一系列索引管理和搜索操作示范。前面提过,elastic4s的主要功能之一是通过组合Dsl语句形成json请求。那么我们先试试组合一些Dsl语句,再想办法产生出json请求文本,然后在kibana控制台中验证它的正确性。 首先看...[2020/4/18]

search(4)- elastic4s-ElasticDsl

   上次分析了一下elastic4s的运算框架。本来计划接着开始实质的函数调用示范,不过看过了Elastic4s的所有使用说明文档后感觉还是走的快了一点。主要原因是elasticsearch在7.0后有了很多重点调整改变,elastic4s虽然一直在源代码方面紧跟E...[2020/4/17]

Scala学习系列(二)——环境安装配置

Scala下载地址:https: www.scala-lang.org/download/ 一、安装JDK 首先,因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK 二、二进制安装方式 我们可以直接用二进制安装Scala 还是下载网址 Window...[2020/4/13]

Scala学习系列(一)——Scala为什么是大数据第一高薪语言

Scala学习系列(一)——Scala为什么是大数据第一高薪语言

为什么是Scala 虽然在大数据领域Java的使用更普及,Python也有后来居上的势头,但Scala一直有着不可动摇的地位。我们熟悉的Spark,Kafka,Flink都是由Scala完成了其核心代码的开发。 所以掌握Scala不仅可以学习大数据组件的源码,而且会极大的提升大数据开发...[2020/4/10]

search(2)- elasticsearch scala终端:elastic4s

   上篇谈到:elasticsearch本身是一个完整的后台系统,对其的操作使用是通过终端api进行的。elasticsearch本身提供了多种编程语言的api,包括java的esjava。而elastic4s是一套基于esjava之上的scala api。 先看...[2020/3/23]

search(3)- elastic4s-QueryDSL

  elastic4s是elasticsearch一个第三方开发的scala语言终端工具库(Elastic4s is a concise, idiomatic, reactive, type safe Scala client for Elasticsearch.)。scala...[2020/3/23]

search(1)- elasticsearch结构概念

   上篇提到选择了elasticsearch ES作为专业化搜索引擎的核心,这篇讨论一下ES的基本结构和应用概念。首先,从硬结构方面来讲:ES是在一个集群(cluster)环境里运行的,所以ES应该具备高可用和高扩展特性,因为系统可以分布在机器内无数个节点(node...[2020/3/17]

search(0)- 企业搜索,写在前面

  计划研究一下搜索search,然后写个学习过程系列博客。开动之前先说说学习搜索的目的:不是想开发个什么搜索引擎,而是想用现成的搜索引擎在传统信息系统中引进搜索的概念和方法。对我来说,传统的管理系统legacy i.t system已经走到了尽头。根本原因是信息在量上的爆发增...[2020/3/2]

CassandraAppender - distributed logging,分布式软件logback-appender

   农历年最后一场scala-meetup听刘颖分享专业软件开发经验,大受启发。突然意识到一直以来都没有完全按照任何标准的开发规范做事。诚然,在做技术调研和学习的过程中不会对规范操作有什么严格要求,一旦技术落地进入应用阶段,开始进行产品开发时,只有严格按照专业的软件...[2020/2/12]

大数据开发环境需要的安装包合集,亲测没问题

大数据环境需要的安装包合集,包括: apache-flume-1.7.0-bin.tar.gz apache-hive-1.2.1-bin.tar.gz hadoop-2.7.2.tar.gz hbase-1.3.1-bin.tar.gz jdk-8u144-linux-x64.tar ...[2020/2/12]

scala安装教程及简单配置

scala安装教程及简单配置

  本文将介绍以下内容:Windows下安装scala运行环境,安装编译工具并简单配置,实现著名的“Hello,World"。 一,Windows下安装scala运行环境   1.配置jdk,因为scala的运行需要依靠jvm虚拟机,所以在使用scala时需要有java环...[2020/2/12]

2020寒假 05 ——eclipse安装scala环境

在eclipse中安装Scala环境 1安装eclipse插件步骤,点击help,选择Eclipse Marketplace   2.输入Scala,点击go    3.选择搜索到的Scala IDE 4.7.x,点击install下载。 ...[2020/2/12]

在idea中设置指向源代码(scala)

1.到官网下载scala源代码 点击如下链接下载源码:http: www.scala-lang.org/download/all.html 选择需要的版本点击进行下载,我选择的是2.11.8版本,如下图:     2.在idea中设置指向源代码 在in...[2019/12/30]

wordcount实例

scala的wordcount实例 package com.wondersgroup.myscala import scala.actors.{Actor, Future} import scala.collection.mutable.ListBuffer import scala...[2019/12/16]

scala中分组的算子的用法

val rdd= sc.parallelize(List(("tom",1),("jerry",3),("kitty",2),("tom",2))) 1.根据传入的参数进行分组 val rdd1:RDD[(String, Iterable[(String, Int)])] =rdd....[2019/12/11]

Scala中sortBy和Spark中sortBy区别

Scala中sortBy是以方法的形式存在的,并且是作用在Array或List集合排序上,并且这个sortBy默认只能升序,除非实现隐式转换或调用reverse方法才能实现降序,Spark中sortBy是算子,作用出发RDD中数据进行排序,默认是升序可以通过该算子的第二参数来实现降序排序...[2019/12/11]

RDD的转换操作,分三种:单value,双value交互,(k,v)对

import org.apache.spark.rdd.RDDimport org.apache.spark.{Partitioner, SparkConf, SparkContext} object Transformation { def main(args: Array[...[2019/12/11]

scala的应用--UDF:用户自定义函数

在window10下安装了hadoop,用ida创建maven项目。 <properties> <spark.version>2.2.0< park.version> <scala.version>...[2019/12/10]

scala中val和var的区别

1:内容是否可变:val修饰的是不可变的,var修饰是可变的 2:val修饰的变量在编译后类似于java中的中的变量被final修饰 3:lazy修饰符可以修饰变量,但是这个变量必须是val修饰的 ps:lazy相当于延迟加载(懒加载),当前变量使用lazy修饰的时候,只要变量不被...[2019/12/10]

scala中nothing和null的区别

1:nothing是所有类型的子类,他没有具体的实例对象,常见的应用:抛出异常、程序exit、无线循环等。 2:nothing是所有类型的子类,也是null的子类,nothing没有对象,但是可以用来定义类型,如方法抛出异常的返回值类型就是nothing。 3:null是所有引用类型...[2019/12/10]

scala中的Option

Scala中Option是用来表示一个可选类型 什么是可选? --> 主要是指 有值(Some) 和 无值(None)-->Some和None是Option的子类 val myMap:Map[String,String] = Map("key1"->"value1...[2019/12/10]

scala中停止循环的三种方式

1:使用return关键字 object BreakLoop { 1.使用return关键字 def add():Unit= { for(i <- 1 to 10){ if(i==7){ 停止循环 ...[2019/12/10]

Java中接口和Sala中的特质的区别?

1.先要区分是Java中哪个版本的接口,因为Java中不同版本接口是不一样2.Java8之前的接口(不包含Java8),这个版本的接口只能属性和抽象方法,和Scala中的特质有完全的不用因为Scala特质除了定义属性和抽象方法之外,还可以定实现方法和抽象属性3.Java8之后的接口(包含...[2019/12/9]

scala练习题--万年历

   使用方法去完成 import scala.io.StdIn object work1 { def main(args: Array[String]): Unit = { 1.先输出提示语句,并接受用户输入的年,月 pri...[2019/12/9]

scala基础题--100以内的数求和,求出当和第一次大于20的当前数【for】

import util.control.Breaks._ object work01 { def main(args: Array[String]): Unit = { 方式一 var sum:Int= 0 breakable{ for (i<-1 ...[2019/12/9]

scala基础题--函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔

函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔 import scala.io.StdIn object work02 { def main(args: Array[String]): Unit = { println("请输入一个数")...[2019/12/9]

346
2
记录数:199 页数:1/41234下一页尾页
加载更多
 友情链接: NPS  问卷模板