SCALA - 技术教程文章

scala数据库访问toolslick

Slick 是 TypeSafe 推出的 Scala 数据库访问库。开发者可以使用 Scala 语言风来编写数据查询,而不是用 SQL,示例代码: package com.testimport scala.slick.driver.MySQLDriver.simple._import com.mysql.jdbc.jdbc2.optional.MysqlDataSourceimport scalaSlick 是 TypeSafe 推出的 Scala 数据库访问库。开发者可以使用 Scala 语言风格来编写数据查询,而不是用 SQL,示例代码: package com.testimport scala.slick.driver.MySQ...

Oracle11g新特性MemberKillEscalation简介【图】

从oracle 11gR1 开始,Member Kill Escalation的出现成功的解决了前面提到的情况。当实例eviction在指定的时间内(默认20秒)不能 首先我们介绍一下历史。在Oracle 9i/10g 中,如果一个数据库实例需要驱逐(evict, alert 文件中会出现ora-29740错误)另一个实例时,需要通过LMON进程在控制文件(以下简称CF)中写入相应信息,当目标实例的LMON进程读取到相应的信息后,该实例shudown。但是,如果目标实例的LMON进程挂起而无法完...

scala作为redisclient

我是使用maven 来构建我的scala 项目的因此我需要使用mvn 源 地址如下 http://maven.outofmemory.cn/com.top10/ 然后修改 项目下的pom.xml增加依赖 dependency groupIdcom.top10/groupId artifactIdscala-redis-client_2.10/artifactId version1.13.0/versio我是使用maven 来构建我的scala 项目的因此我需要使用mvn 源 地址如下 http://maven.outofmemory.cn/com.top10/ 然后修改 项目下的pom.xml增加依赖com.top10scala-redis-cli...

mysql-Mysql中com.ExecuteScalar();为什么先转为long再int??

mysqlsqlc# Mysql中int sum=(int)(long)com.ExecuteScalar(); 为什么好先转为long再int??MySqlCommand com=new MySqlCommand("SELECT COUNT(*) from student",conn);int sum=(int)(long)com.ExecuteScalar();

StuffTheInternetSaysOnScalabilityForMay2nd,2014_MySQL【图】

Hey, it's HighScalability time:Googles new POWER8server motherboard1 trillion: number of scents your nose can smell;millions of square feet: sprawling new server farmsQuotable Quotes:Gideon Lewis-Kraus: As the engineer and writer Alex Payne put it, these startups represent “the field offices of a large distributed workforce assembled by venture capitalists and their associate institutions,” doin...

scala 编程思想 --数据

package com.test2import scala.util.Tryobject Zipper { def main(args: Array[String]): Unit = { //zip进行数据压缩 val left = Vector("a","b","c","d") val right = Vector("q","r","s","t") println(left.zip(right)) println(left.zip(Range(0,4))) println(left.zipWithIndex) //zipMap case class Person(name:String,ID:Int) val names = Vector("Bob","Jill","Jim") val IDs...

scala 编程思想 --类方法

覆盖方法到目前为止,我们继承的类都没有真正执行任何能够使彼此有所区分的操作package com.test1object Scala09_test13 { def main(args: Array[String]): Unit = { //地道的scala //定义操作符 //方法名可以包含几乎所有字符。例如,在创建数学包时,你可以按照数学家的方式 class Molecule{ //var name = _ (前提必须是变量var 不能是val) var attached:Molecule = _ def plus(other:Molecu...

scala 编程思想 -map和reduce

package com.test1object Scala09_test10 { def main(args: Array[String]): Unit = { //作为对象的函数 //我们可以将方法以对象的形式作为参数给其他方法 //为了实现这一点,需要函数对象来打包方法,函数对象简称为函数 //例如foreach对于像vector这样的序列来说是一个非常有用的方法 //它接受参数,并将其应用到序列中每个元素上。 def show(n:Int):Unit = {println("> "+n)} val v:Vector[Int] = ...

scala 编程思想 --模式匹配

计算机编程中很大的一部分工作是在进行比较,并基于是否匹配某项条件执行相应的某项条件来执行相应的条件,任何能够使用这项区配表达式会将一个值与可能的选项进行匹配,所有匹配都以要纟较的值开头,后面跟着match关键字,左花括号和一组可能匹配package com.test1object Scala09_test8{ def matchColor(color:String):String={ color match { case "red" =>"RED" case "blue" =>"BLUE" case "green" =>"...

scala 编程思想 --类和对象

对象是包括scala在内的众多现代编程语言的基础。在面向对象编程语言中package com.test1object Scala09_test3 { def main(args: Array[String]): Unit = { val r1 = Range(0,10) //对于range来说,可用操作的数量非常惊人,对象是 //类和对象 //对象是包括 println(r1.toSeq.reverse) //创建一个range对象并打印其Step值 println(r1.step) val r2 = Range(0,10,3) println(r2.step) type...

scala 编程思想--第一部分

scala 编译器有eclipse ,idea ,sumblime等scala shell1、变换目录 cd 2、目录清单 ls3、创建目录 mkdir 4、移除目录 rm 5、移除目录 rm -r6、重复前一行命令的最后一个参数: liunx !$ 在 powershell $$7、命令行: history 8、unzip 安装 scala 需要先安装java 再安装scala跟java一样,检查scala -version 示例代码:https://github.com/chrisdbarran/AtomicScala 运行scalacrtl+R 输入scala scala> 42*11.3 res0: Double = 474....

6.1.2 Scala编程(特质trait、模式匹配和样例类、函数及抽象化、集合【Seq,Set,Map】/集合常用算子、与java集合转换、泛型参数、Akka)【代码】【图】

Scala编程文章目录 Scala编程第六部分 特质第1节 作为接口使用的特质第2节 带有具体实现的特质第3节 特质构造顺序第4节 特质继承类第5节 Ordered和Ordering 第七部分 模式匹配和样例类第1节 模式匹配第2节 字符和字符串匹配第3节 守卫式匹配第4节 匹配类型第5节 匹配数组、元组、集合第6节 样例类第7节 Option与模式匹配 第八部分 函数及抽象化第1节 函数字面量及函数的定义第2节 函数与方法的区别第3节 匿名函数与占位符第4节 高阶...

如何获取Kafka的消费者详情——从Scala到Java的切换【图】

?前文摘要在上一篇文章《Kafka的Lag计算误区及正确实现》中介绍了如何计算消费者的消费滞后量(Lag),并且讲解了如何调用Kafka的kafka.admin.ConsumerGroupCommand文件中的KafkaConsumerGroupService来发送OffsetRequest和OffsetFetchRequest两个请求,进而通过两个请求结果之间的差值来获得结果。不过如果你不想修改kafka-core的代码并重新编译的话,这种实现方式无法成功,所以本文的主要目的就是通过调用更底层的API来实现不修改...

Delta Lake 提供纯 Scala\Java\Python 操作 API,和 Flink 整合【代码】【图】

Delta Lake 提供纯 Scala\Java\Python 操作 API,和 Flink 整合更加容易 过往记忆大数据 过往记忆大数据 最近,Delta Lake 发布了一项新功能,也就是支持直接使用 Scala、Java 或者 Python 来查询 Delta Lake 里面的数据,这个是不需要通过 Spark 引擎来实现的。Scala 和 Java 读取 Delta Lake 里面的数据是通过 Delta Standalone Reader[1] 实现的;而 Python 则是通过 Delta Rust API[2] 实现的。Delta Lake 是一个开源存储层,...

Spark环境下Scala和Python两种语言的对比【图】

Spark环境下Scala和Python两种语言的对比 Apache Spark作为类Hadoop MapReduce的通用并行框架,一款专为大规模数据处理而设计的分布式计算引擎,以其优越的性能,较为完善的生态,受到了大数据从业人员的青睐。 Spark的框架使用Scala编写(注:Scala是一种运行在Java虚拟机上,实现和Java类库互联互通的面向对象及函数式编程语言),而Spark的开发目前主要使用三种语言:Scala、Python、Java。 相比于Java,Spark中用Scala开发语...

6.1.2 Scala 数组元祖(变长,操作,算法,多维,元祖), 类与对象(无参构造,自定义GS,Bean,构造器,对象(单例,伴生,app对象)), 继承(构造执行顺序,方法重写,类型检查转换)【代码】

目录 第三部分 数组和元组 第1节 数组定义 第2节 变长数组 第3节 数组操作 第4节 常见算法 第5节 多维数组 第6节 元组及操作 第四部分 类与对象 第1节 类和无参构造器 第2节 自定义getter和setter方法 第3节 Bean属性 第4节 构造器 第5节 对象 5.1 单例对象 5.2 伴生类与伴生对象 5.3 应用程序对象 5.4 apply方法 第五部分 继承 第1节 继承的概念 第2节 构造器执行顺序 第3节 override方法重写 第4节 类型检查与转换 第三部分 数组...

Scala(第五节)actor并发编程、文件操作和网络请求、隐式转换和隐式参数、Akka并发编程、Akka模拟简易Spark通信【代码】【图】

目录 actor并发编程什么是Scala Actor概念java并发编程与Scala Actor编程的区别Actor的执行顺序发送消息的方式 Actor实战第一个例子第二个例子第三个例子第四个例子第五个例子通过actor实现多文件单词计数scala当中的文件操作和网络请求读取文件当中每一行的数据读取词法单元和数字读取网络资源、文件写入、控制台操作读取网络资源文件写入操作控制台交互操作 scala当中的序列化scala当中的正则表达式 隐式转换和隐式参数隐式转换隐...

Scala函数式编程中的Monoid【代码】【图】

在本文中,我们将会从一个简单的需求出发,尝试通过对代码的多次重构,逐步帮你理解什么是Monoid。 基本概念 群(category)的基本概念 群(category)有两个组成要素:由一些同一个类型的对象组成 一种态设关系(map),可以将范畴中的任何一个对象转换成另外一个对象,转换之后的类型还是class的。其示意图如下所示: 另外,一个群还需要满足两个公理: 结合律,以加法为例,(a+b)+c = a+(b+c)同一律,群中存在一个特殊的对象e,使得 ...

Spark/Scala实现推荐系统中的相似度算法(欧几里得距离、皮尔逊相关系数、余弦相似度:附实现代码)

在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别、年龄、工作、收入、喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多。 本篇文章不介绍相关数学概念,主要给出常用的相似度算法代码实现,并且同一算法有多种实现方式。 欧几里得距离1 2 3 4 5 6 7 8 9 10 11 ...

JavaScript, ABAP和Scala里的尾递归(Tail Recursion)【图】

这是Jerry 2021年的第 12 篇文章,也是汪子熙公众号总共第 283 篇原创文章。 今天是2021年1月20日,看看历史上的今天都发生了什么。 2004年1月20日,第一个公开版本的Scala发布。Scala是一种采用静态类型系统的编译型语言,具有很强的可扩展性(Scalability),这也是其名称的由来。 Scala设计初衷是集成面向对象编程和函数式编程的各种特性,运行于JVM平台上,并兼容已有的Java程序。Jerry没有在SAP标准产品开发中使用过Scala,只是...

spark学习进度22(Scala编程初级实践-2)【代码】【图】

spark-shell 交互式编程: 请到本教程官网的“下载专区”的“数据集”中下载 chapter5-data1.txt,该数据集包含 了某大学计算机系的成绩,数据格式如下所示:Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBase,90 Jim,Algorithm,60 Jim,DataStructure,80请根据给定的实验数据,在 spark-shell 中通过编程来计算以下内容:(1)该系总共有多少学生; (2)该系共开设来多少门课程;(3)Tom 同学的总成绩平均分是...

大数据——Scala和Java实现Spark Streaming实时流监控、Spark Streaming搭配Kafka Stream联用和Spark Streaming自定义采集器【代码】【图】

Scala和Java实现SparkStreaming Spark Streaming实时流监控端口数据进行WordCountScala版本实现Spark StreamingJava版本实现SparkStreaming Spark Streaming实时流监控文件夹数据进行WordCountSpark Streaming和Kafka Stream联用不显示输出过的结果显示输出过的结果 自定义采集器 Spark Streaming实时流监控端口数据进行WordCount Scala版本实现Spark Streaming 添加maven依赖 <dependencies><dependency><groupId>com.fasterxml.j...

第一个Scala程序——Hello World!【代码】

一、交互式编程 交互式编程不需要创建脚本文件,可以通过以下命令调用: $ scala Welcome to Scala 2.13.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_231). Type in expressions for evaluation. Or try :help.scala> println("Hello World!"); Hello World!二、脚本形式 我们也可以通过创建一个 HelloWorld.scala 的文件来执行代码,HelloWorld.scala 代码如下所示 2.1、编写脚本 vi HelloWorld.scala使用vi编辑器编写scal...

Spark/Scala实现推荐系统中的相似度算法(欧几里得距离、皮尔逊相关系数、余弦相似度:附实现代码)

在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别、年龄、工作、收入、喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多。 本篇文章不介绍相关数学概念,主要给出常用的相似度算法代码实现,并且同一算法有多种实现方式。 欧几里得距离def euclidean2(v1: Vecto...

Elasticsearch 7.9 之 Scalability and resilience:clusters, nodes and shards

Elasticsearch 旨在始终可用并根据您的需求扩展。它是通过自然分布来实现的。您可以将服务器(节点)添加到集群以增加容量,Elasticsearch 会自动在所有可用节点之间分配数据和查询负载。无需大修大改您的应用程序,Elasticsearch 知道如何平衡多节点集群以提供扩展性和高可用性,节点越多越好。 这是如何运作的?在幕后,Elasticsearch 索引实际上只是一个或多个物理碎片的逻辑分组,其中每个碎片实际上是一个独立的索引。通过将一...

Scala和java代码打包【代码】【图】

pom文件中,加入以下maven依赖<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version><configuration><skipTests>true</skipTests></configuration></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1....

Spark2.4.0源码(scala):自动化单元测试的实现与探索【代码】【图】

项目场景: 在spark的源码中,有一个main文件夹,同时还有一个test文件夹,里面大部分是suite后缀的scala文件,这就是测试文件。通常我们编译spark源码,会skip掉test部分以加快速度,如果我们不是skip的话,完成的就是自动化测试,这个过程并不难懂,但是这个过程也并不是很简单地就能一次跑通。耗时也比skip test多非常地多,我带测试的编译了core包,在集群上编译一共花费15小时多点。 问题描述: 实验环境: spark:2.4.0 mave...

Scala与Java差异(五)之Map与Tuple【代码】

一、 创建Map (1)创建Map // 创建一个不可变的Map val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23) ages("Leo") = 31 // 创建一个可变的Map val ages = scala.collection.mutable.Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23) ages("Leo") = 31 // 使用另外一种方式定义Map元素 val ages = Map(("Leo", 30), ("Jen", 25), ("Jack", 23)) // 创建一个空的HashMap val ages = new scala.collection.mutable.HashMap[Stri...

IDEA Scala 程序报错 Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$【代码】【图】

如下图创建项目的命令如下: mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-scala -DarchetypeVersion=1.9.0 -DgroupId=com.xjr7670.flink -DartifactId=QuickStart -Dversion="1.0-SNAPSHOT" -DinteractiveMode=false解决办法: 打开 File -> Project Structure,找到 Platform Settings 下面的 SDKs,在 classpath 下添加 scala-library-x.xx.x.jar 的 jar 包。如下图:

scala/java获取文件相对路径,编译成jar包后可以继续读取

文件需要放在resource下,打成jar包后仍然可以读取到1. 各种环境都能读取。(通用) ClassPathResource classPathResource = new ClassPathResource("word.txt");InputStream inputStream =classPathResource.getInputStream();InputStreamReader in = new InputStreamReader(inputStream);BufferedReader br=new BufferedReader(in);2. (通用) BufferedReader br = new BufferedReader(new InputStreamReader(Thread.currentThr...