![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Scala
文章平均质量分 66
Scala相关内容
Code_LT
以斗争求团结则团结成
公司网络限制,无法进行私信沟通
展开
-
Scala中下划线“_”的用法小结
既然偏应用函数就是不提供或者只提供部分参数调用时返回的函数,我们也可以用下划线来代替那些不提供的参数。转载 2023-10-11 17:31:29 · 269 阅读 · 0 评论 -
【spark】序列化和反序列化,transient关键字的使用
序列化就是指将一个对象转化为二进制的byte流(注意,不是bit流),然后以文件的方式进行保存或通过网络传输,等待被反序列化读取出来。1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。如果在driver端不使用instance,那么@transient 不是必须的,序列化会发生,这时候序列化的instance 为null。3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。原创 2023-08-29 22:07:24 · 1133 阅读 · 0 评论 -
scala中json4s 使用详解
json4s的数据结构AST (Abstract Syntax Tree)。我们可以通过 json4s 对json所做的操作如下图所示,中间为 Json AST (简单理解就是一个用JValue表示的 JSON)。另外,org.json4s下定义了很多scala原生数据转JValue的隐式转换(即多数操作下可以把原生数据当做JValue直接使用)原创 2023-08-18 17:23:22 · 1008 阅读 · 0 评论 -
Scala 如何调试隐式转换--隐式转换代码的显示展示
再到要调试的文件页面,进行编译(快捷键Ctrl+Shift+F9)。对于复杂的工程来说,直接跑到terminal执行。在需要隐式转换的地方,把需要的参数显示的写出。可在idea的设置中,找到如下配置,写入。方法打印添加了隐式值的代码示例。在terminal中 利用。会报很多库不存在的错误。原创 2023-08-16 16:09:33 · 729 阅读 · 0 评论 -
scala基础教程:《scala 编程(第3版)》学习笔记(全)
当作一个无参函数使用。说明这点的作用是在做scala测试的时候,ScalaTest框架,会把测试代码当作无参函数传入test函数中。这样也利用了传名函数不会马上计算结果的特征。所有需要类型参数的地方,都被认为是一个“点”,这些点可分为协变点、逆变点、不变点。由于函数和字段在同一个命名空间,所以可以把无参函数和字段相互替换使用。,Function1是逆变和协变同时存在的。本章相当于15章 的进阶版本,所以放在这里先讲。(第10章 组合和继承 会有更多详细的介绍)本章主要讨论不可变对象。new 类名(参数)原创 2023-03-15 09:58:50 · 693 阅读 · 3 评论 -
log4j:WARN No appenders could be found for logger问题
本文将idea场景下的使用。IDEA中,将配置文件命名为(该命名才会被自动加载), 并放到某个目录下(通常放到resources目录),并在resources上右键,找到Mark Directory as 选中Resources Root(如果时test目录中,确定好文件结构,各文件夹的类型是否正确将log4j.propeties文件放到resource文件夹下(main的就放到)原创 2023-08-16 11:50:15 · 1656 阅读 · 0 评论 -
获取Scala中所有环境和系统属性,(System.getProperties System.getenv
【代码】获取Scala中所有环境和系统属性,(System.getProperties System.getenv。原创 2023-08-11 10:09:33 · 216 阅读 · 0 评论 -
Scala 中的枚举
在源码的Example中可以看到所有的枚举都是被赋值为Value类型,从上面的源码中可以看到Value类是一个抽象类,看它的内容只是提供了枚举值比较以及id的获取,在Enumeration源码中提供了一个叫Val的类对Value实现,重要是重写了整数命名和id的识别。请注意,请注意,Example中的第4行、第5行的Value,前者是类,后者是方法(括号省略了而已)上面提供了各种Value的重载方法均是返回了Val类,所以说嘛,你有需要完全可以自己再实现一个Value类。转载 2023-08-08 22:32:27 · 368 阅读 · 0 评论 -
scala 加载properties文件
可否换成scala自带的文件读入?不能,scala.io返回的对象不能被props直接load。原创 2023-08-08 22:26:29 · 464 阅读 · 0 评论 -
Scala的序列化,Serialization以及SerialVersionUID
序列化一个Scala对象为文本或者二进制数据,以便支持持久化或者网络传输等需求,并通过读取这些数据,可以反序列化出这个对象。转载 2023-08-08 21:33:45 · 527 阅读 · 0 评论 -
scala连接mysql数据库
scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。原创 2023-08-07 10:55:29 · 998 阅读 · 0 评论 -
scala 短文本相似度计算
对于dataframe,getLevenshtein可利用原生的levenshtein函数。原创 2023-07-28 15:18:07 · 415 阅读 · 0 评论 -
Scala动态创建对象,scala反射
我们知道, Scala是基于JVM的语言, Scala编译器会将Scala代码编译成JVM字节码, 而JVM编译过程中会擦除一些泛型信息, 这就叫类型擦除(type-erasure ).而我们开发过程中, 可能需要在某一时刻获得类中的详细泛型信息. 并进行逻辑处理. 这时就需要用的 这个概念. 通过反射我们可以做到获取运行时类型信息通过类型信息实例化新对象访问或调用对象的方法和属性等。原创 2023-07-26 09:36:34 · 559 阅读 · 2 评论 -
最详细的Log4j使用教程
其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。转载 2023-07-08 23:03:34 · 4288 阅读 · 0 评论 -
java.lang.Integer cannot be cast to java.lang.String; scala 中和java 间的类型转换
然后再调用 asJava/asScala 方法半自动转型(自动部分在生成 AsJava/AsScala 中间实例)。Scala 2.8.1 加入,稍新, asJava/asScala 为我们标记出了实际转型的地方,以及从哪个方向到哪个方向。如下代码会报错:java.lang.Integer cannot be cast to java.lang.String。自动转型,Scala 2.8 加入的。隐式转型可能会造成阅读上的障碍,可能会让人难以知晓什么变成了什么。原创 2023-06-15 23:30:50 · 468 阅读 · 0 评论 -
scala中的eval,执行字符串表达式
想实现如下执行字符串表达式的能力(类似python中的eval)原创 2023-04-07 16:09:29 · 264 阅读 · 0 评论 -
Scala测量程序运行时间
【代码】Scala测量程序运行时间。原创 2023-04-03 10:23:24 · 239 阅读 · 0 评论 -
scala中的并发容器,,tireMap等实现并发操作
在Scala标准库中包含的并行容器通过免去并行化的底层细节,以方便用户并行编程,同时为他们提供一个熟悉而简单的高层抽象。希望隐藏在抽象容器之后的隐式并行性将带来可靠的并行执行,并进一步靠近主流开发者的工作流程。原理其实很简单-容器是抽象编程中被广泛熟识和经常使用的类,并且考虑到他们的规则性,容器能够使程序高效且透明的并行化。通过使用户能够在并行操作有序容器的同时改变容器序列,Scala的并行容器在使代码能够更容易的并行化方面做了很大改进。原创 2023-04-03 10:04:19 · 283 阅读 · 0 评论 -
【可能是最详细的】Scala的类型擦除 /TypeTags、Manifests的用法,反射
类型擦除是说:在语言的编译阶段程序中所携带的泛型信息都会被擦除,最终生成的class文件中是不包含类型信息的。getClass 方法得到的是 Class[A]的某个子类,而 classOf[A] 得到是正确的 Class[A],但是去比较的话,这两个类型是equals为true的。这种细微的差别,体现在类型赋值时,因为java里的 Class[T]是不支持协变的,所以无法把一个 Class[_ < : A] 赋值给一个 Class[A]类型一致的对象它们的类也是一致的,反过来,类一致的,其类型不一定一致。原创 2023-03-25 15:16:27 · 697 阅读 · 0 评论 -
Scala中解析json工具对比
1, 做少量文件解析,优先用json4s,因为json4s时基于Scala开发的,对scala使用场景支持更好2. 做大量数据的解析,追求序列化、反序列化速度时,考虑用fastjson,但是fastjson是基于java开发的,涉及自定义类的提取时,支持不好。所以,除非遇到性能提升问题,再用fastjson。可选工具:fastjsongsonjson4s(jackson的scala版本)lift-jsonspray-jsoncircleplay-json。原创 2023-03-23 21:40:53 · 1709 阅读 · 0 评论 -
scala中的getter和setter
当然了,你也可以不使用自动生成的方式,自己定义getter和setter方法提示:自己定义的时候,尽量符合Scala的规范,这是一个规则,我们知道就行了,一般不会这个做手动的把属性,添加private,生成的getter和setter方法,也是private的,不写private,默认是private,但是它的getter和setter方法不是private的,是可以访问的。转载 2023-03-16 20:51:55 · 212 阅读 · 0 评论 -
《scala 编程(第3版)》学习笔记5
所有需要类型参数的地方,都被认为是一个“点”,这些点可分为协变点、逆变点、不变点。,Function1是逆变和协变同时存在的。,scala会展开成。原创 2023-03-15 09:55:40 · 267 阅读 · 0 评论 -
Scala中Option的使用
使用 getOrElse 方法可以避免引发异常,它会在 Option 类型的值是 None 类型时返回一个默认值。Option 类是 Scala 中一种常用的用于表示可能存在或不存在值的类型,它有两个子类型:Some 和 None。对于Option类型,可以使用 isDefined 方法来检查值是否存在,或者使用 get 方法来获取 其中的值。但是,在使用这些方法时,你需要注意如果 Option 类型的值是。对于若Option的值为Map类型,还有以下注意点。原创 2023-03-13 10:43:56 · 336 阅读 · 0 评论 -
scala正则表达式使用
正则表达式是一种针对于字符串的操作,主要功能有匹配、切割、替换和获取的作用,在Scala中正则也是被频繁使用的方法(regex.r表示为正则表达式)转载 2023-03-10 18:24:48 · 364 阅读 · 0 评论 -
正则表达式
scala/java中,分割是按照正则表达式来分割的,有时我们仅希望按原样分割。原创 2023-03-09 09:44:31 · 477 阅读 · 0 评论 -
log4j配置文件读取的几种方式
【代码】log4j配置文件读取的几种方式。原创 2023-03-02 22:29:57 · 982 阅读 · 0 评论 -
Scala中的协变点、逆变点、不变点如何确定?
阅读《scala编程》时,我们知道了类的类型参数是可以型变(variance)的。类或特质定义中能出现类型参数的所有位置都会被归类成不同的“点”,这些点可分为协变点(positive)、逆变点(negetive)、不变点(neutral)。原创 2023-01-06 23:12:31 · 829 阅读 · 0 评论 -
scala中reqiure和assert的区别
一个是错误(AssertionError),一个是异常(IllegalArgumentException)。错误会导致程序停止,而异常可以捕获,做进一步处理。另外,查看assert 函数的定义发现,有 注解@elidable(ASSERTION)。表示这个函数是可通过修改配置,控制是否启用的。reqiure功能上和assert类似,条件错误会返回IllegalArgumentException ,reqiure和assert都可用于条件检查。两者都在Predef中定义,自动加载。都可关闭assert。...原创 2022-08-27 09:43:22 · 399 阅读 · 0 评论 -
《scala 编程(第3版)》学习笔记4
第14章-第16章原创 2022-07-01 18:55:41 · 354 阅读 · 0 评论 -
Scala,Java,Python中的相等性
:Python运行相等测试,递归地比较所有的内嵌对象。(比较内容是否相等):对象一致性。Python测试二者是否是同一个对象。(比较内存地址是否相同):1. 值类型:自然相等性或者说内容相等性2. 引用类型:对象一致性,是否是同一个对象:应用类型的规约相等性(通常由用户自定义,往往定义成比较内容是否相等):1. 值类型:内容相等性2. 引用类型:几乎等价于equals,实际定义为:: 比较对象一致性: 默认从Any继承下来,不重写的话,等价于eq.........原创 2022-06-25 10:17:02 · 431 阅读 · 0 评论 -
《scala 编程(第3版)》学习笔记3
第10章-第13章原创 2022-06-17 11:47:49 · 187 阅读 · 0 评论 -
Scala,Spark依赖jar包冲突解决方法
问题背景:在提交任务运行时,报了如下错误:Caused by: java.lang.BootstrapMethodError: call site initialization exception…Caused by: java.lang.invoke.LambdaConversionException: Invalid receiver type interface org.apache.http.Header; not a subtype of implementation type inter原创 2022-04-21 15:31:30 · 4110 阅读 · 0 评论 -
《scala 编程(第3版)》学习笔记2
第7章-第9章原创 2022-03-28 22:54:33 · 479 阅读 · 0 评论 -
Scala 中的集合(二):集合性能比较
在平时使用集合的时候,我们经常会选择 Scala 中通用的集合,例如:Seq、Map、List等等,有的时候选择「通用集合」完全可以解决问题,但是当集合操作变得很复杂以至于涉及到「性能问题」的时候,采用「通用集合」可能并不是一个好的选择。在不同的场景下选择合适的集合可以使我们对于集合的操作更加高效。大部分情况下,我们都会优先采用「不可变集合」,所以本文将通过比较几种常见的「不可变集合」来阐述各个集合之间的性能差异。Set通过上图可以看到,两种常用的类型:TreeSet、HashSet都继..转载 2022-03-26 17:20:24 · 363 阅读 · 0 评论 -
如何在 Scala 中科学地操作 collection(一):集合类型与操作
在日常项目开发中,我们几乎都会用到Scala中的集合以及一些集合操作。由于 Scala 中的集合操作灵活多变,对于刚接触Scala的开发者,在选用何种集合以及使用何种集合操作就显得不那么合理了,虽然大部分时候都可以解决问题,但是有时候并没有选择最优的方式。科学合理地操作Scala中的集合可以使我们的代码变得更加简洁和高效。Mutable 和 Immutable 集合Scala 集合类系统地区分了可变的和不可变的集合。scala.collection 包中所有的集合类scala.colle转载 2022-03-26 17:17:37 · 580 阅读 · 0 评论 -
《scala 编程(第3版)》学习笔记1
第1章-第6章原创 2022-03-02 11:42:59 · 399 阅读 · 0 评论 -
Scala 加密和哈希函数
//md5import java.security.MessageDigestobject Md5 { def hashMD5(content: String): String = { val md5 = MessageDigest.getInstance("MD5") val encoded = md5.digest((content).getBytes) encoded.map("%02x".format(_)).mkString }原创 2022-02-25 10:13:33 · 733 阅读 · 0 评论 -
scala 时间、时间戳系列操作
格式说明:Letter Date or Time Component Presentation Examples G Era designator Text AD y Year Year 1996;96 Y Week year Year 2009;09 M Month in year Mon...原创 2019-09-26 16:08:05 · 4958 阅读 · 0 评论 -
scala慎用 ListMap
有时候为了让Map有序,在scala中会选择使用ListMap,但是ListMap的创建效率极低,用时:Map则很高效,但无序,用时:其实,要想使用有序的二元结构,其实可以用map.toSeq,这样的得到的seq是可以根据元素排序的如:map.toSeq.sortBy(_._2.toDouble)(Ordering[Double].reverse)...原创 2019-03-23 11:42:12 · 807 阅读 · 0 评论 -
Scala GUI使用笔记,scala swing库的使用
scala swing简单教程1:https://www.scala-lang.org/old/sites/default/files/sids/imaier/Mon,%202009-11-02,%2008:55/scala-swing-design.pdf或教程2“Progrmming in Scala” Chapter 34 GUI Programming详细教程3:https://d...原创 2019-02-18 16:20:27 · 1552 阅读 · 0 评论