
Scala
文章平均质量分 62
hzp666
这个作者很懒,什么都没留下…
展开
-
idea运行Scala程序报错
删除project structure下Libraries中的Scala SDK后关闭IDEA,重新打开,检查pom.xml文件中Scala的版本,重新导入Scala SDK。转载 2023-05-09 11:04:03 · 1135 阅读 · 0 评论 -
scala中关于时间格式的转换
原文链接:https://blog.youkuaiyun.com/lvtula/article/details/93387444。val time:Long= 1513839667//秒。转载 2023-02-03 09:54:55 · 513 阅读 · 0 评论 -
flink中idea配置pom.xml
-Flink 本地测试wei ui依赖 http://127.0.0.1:8081/ -->--Flink Table API 核心依赖-->--这里没引打包插件 需要的自己引用-->--Flink rocksdb状态后依赖 -->--Flink Java 项目核心依赖-->--Flink scala项目核心依赖-->--Flink 本地测试客户端依赖-->--Flink Kafka依赖-->--junit测试-->--Flink项目核心依赖-->--以下用到什么引用什么-->--本地测试核心依赖-->原创 2022-12-09 16:39:03 · 1773 阅读 · 0 评论 -
Scala中使用fastJson 解析json字符串
Scala中使用fastJson 解析json字符串添加依赖 2.解析json字符 2.1可以通过JSON中的parseObject方法,把json字符转转换为一个JSONObject对象 2.2然后可调用JSONObject中的方法,根据key获取值 2.3对于JSON中的套JSON字符串的可以使用 2.4如果想要遍历JSONArray中的所有数据,想不使用getJSONObject方法,但是想要这里面的遍历的所有的JSONObject可以使用 3.实例添加依赖转载 2021-06-29 09:42:21 · 1229 阅读 · 0 评论 -
spark程序Scala脚本使用fastJson解析JSON格式数据
源数据样式{"name":"Michael","sex":1}{"name":"Andy", "age":30,"sex":2}{"name":"Justin", "age":19}解析后为map键值对代码如下:1. pom.xml 引入依赖:/*for json*/<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&...原创 2021-06-09 19:18:42 · 947 阅读 · 0 评论 -
Scala递归删除某个文件夹
//check the result is already exists or notval outFilePath = "D:/doc/spark/out/t2"val outFile = new File(outFilePath)//recursion deletedef deleteFileMethod(filePath:File): Unit ={ if(filePath.isDirectory){ val fileList = filePath.listFiles() .原创 2021-05-17 15:50:27 · 515 阅读 · 0 评论 -
Scala学习路线所用到的所有示例
import java.io.{FileNotFoundException, FileReader, IOException}import java.util.Dateimport scala.collection.immutableimport scala.collection.mutable.{ArrayBuffer, ListBuffer}import scala.xml.dtd.ANYimport Array._import scala.{+:, ::}import scala...原创 2021-05-07 10:44:24 · 170 阅读 · 0 评论 -
Scala中读取本地文件wordCount
import java.io.Fileimport scala.collection.mutable.Mapval textFilePath ="D:/doc/spark/input" //create a File val dirFile = new File(textFilePath) //to get every file or dir's path val files = dirFile.listFiles() //to save the word.原创 2021-05-07 10:42:17 · 1301 阅读 · 0 评论 -
Scala中map的一些操作
Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map 中的键都是唯一的。Map 也叫哈希表(Hash tables)。Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类在Scala中你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 muta转载 2021-05-07 09:41:38 · 1372 阅读 · 0 评论 -
Scala中的高阶函数
1.定义 : 当一个函数 func1 中的 参数列表 传入的是函数,那么函数func1 就是高阶函数上边几个函数可以 提炼出为一个高阶函数当传入: def sum(x => x, 2,4 )第一次: 2 + sum(x=>x, 3,4)第二次: 2+3+sum(x=>x, 4,4)第三次:2+3+4+sum(x=>x, 5,4)第四次:2+3+4+0...原创 2021-04-28 10:35:14 · 187 阅读 · 0 评论 -
Scala中的包
1.使用场景包一般是为了解决 命名冲突在不同的包中 可以定义相同名称的类2.定义使用package 定义eg:新建一个 class 类package Package1{ class Dog { def abc(): Unit ={ println("this is package's method") }}}package Package2{ class Cat{ def miao(): Unit ={ print原创 2021-04-26 10:49:36 · 359 阅读 · 0 评论 -
Scala中的case类
1.使用场景:1.1首先 在一个类前添加 case ,Scala会自动给这个类 创建伴生对象,并创建好 apply 工厂方法 和 unapply 方法,使得 实例化该类时 不需要用new,函数式编程写法就可eg:case class People(val dname:String){}val zs = People("张三")println(zs.dname)输出:1.2 类前加case 后,Scala会自动重载很多方法...原创 2021-04-25 14:23:15 · 593 阅读 · 0 评论 -
Scala的特质
1.定义Scala中的特质 类似Java中的接口, 最主要不同点 Java接口中不能定义具体对象和方法 ,而 Scala中的接口 可以定义抽象 和 具体的对象方法2. 一个类只能继承一个超类,但是可以混入多个特质使用extends 继承父类使用with 混入特质,并且 可以混入多个特质...原创 2021-04-25 11:03:23 · 200 阅读 · 0 评论 -
Scala中的类层次结构
1.总层次结构Any是所有类的父类2.值类型 和 引用类型左侧的AnyVal 类下的值类型 都是会被放到 寄存器中右侧的AnyRef 都是引用类型, 对象被实例化后 会被放到堆中右侧 所有引用类型的子类 Null 类似Java中的Null, Null 并不能实例化,只是用来处理 异常和错误的。 平时不建议使用Nul 改用Option3.option3.1 Option是一个抽象类,它有一个子类 叫Some3.2 使用场景:在 一些方法中 最后要...原创 2021-04-23 16:20:04 · 566 阅读 · 0 评论 -
Scala中的继承
1.Scala中的扩展类 使用 extends 继承父类eg:abstract class People(){ val name:String def speak() def info(): Unit ={ printf("this people's name is %s", name) }}class Male(pname:String) extends People { val name = pname override def speak():.原创 2021-04-23 14:29:32 · 269 阅读 · 0 评论 -
Scala中的抽象类
1.先看下 类的层次结构:类层次结构,也称为类分类法,是一组相关的类,它们通过继承连接起来做类似的事情。层次结构的顶部可以是一个基类,它下面的所有其他类都是从中派生出来的,或者层次结构可以有多个基类,这些基类的功能稍后会在一个或多个派生类中合并在一起。1.Scala中的类层次结构2.Scala中抽象类的概念简单讲在Scala中 一个被abstract 修饰的类, 类中包含没有实现的成员,即对象没有初始值,定义的方法没有方法体,则该类就是抽象类。...原创 2021-04-23 10:41:11 · 913 阅读 · 0 评论 -
Scala中的unapply方法
Scala中 unapply方法和 apply 方法相反,apply是传递一个参数生成一个类, Unapply方法是 根据传递的类 获取参数,逆向的过程原创 2021-04-22 16:28:33 · 1107 阅读 · 0 评论 -
Scala中update方法
1.update的场景:update 类似 之前学习的 apply 方法Scala中 根据下标给数组赋值时候,使用小括号 arrayName(0) = "张三" ,这里 为什么是小括号,而不是Java 或C 的 [ ], 原因其实就是 Scala中的update 方法eg:2.update 调用规则eg:val arr1 = new Array[Int](3)arr1(0)= 1111 // 带有括号 并包括参数, 而且是对 数组对...原创 2021-04-22 11:48:14 · 1152 阅读 · 0 评论 -
Scala学习路线
<g id="v-65" class="viewport" transform="translate(199.61612635299247,372.17083568406446) scale(0.4248959692486004,0.4248959692486004)"><g id="v-68" class="boundaries"></g><g id="v-67" class="relationships"></g><g id="j_50.原创 2021-04-21 17:32:05 · 448 阅读 · 0 评论 -
Scala中的apply方法
1.apply的场景Scala中实例化一个类,可以不用new , 其原因 其实就是 apply 方法,具体原因 后边再讲:在上句中Scala 生成Array对象, 会自动去调用 Array 这个伴生对象的 伴生类中的apply方法,2.先来看下apply方法的调用约定:即 如果我们让一个类的实例化对象 或者一个单例对象,后边直接跟一个小括号并在括号中传递参数,eg: 类实例(参数) 或 单例对象(参数) ,这种写法出现时,Sc...原创 2021-04-20 11:51:10 · 5190 阅读 · 0 评论 -
Scala中的对象
1.Object 单例对象 定义类似Java中的 静态对象即定义在 object中的所有成员变量 和 方法都是静态的eg:调用的话:类名.方法 或 类名.变量, 直接调用, 不用实例化类对象可见 personId 是静态对象, 每次会自动累加。2.单例对象又分为两种 伴生对象 和 孤立对象2.1.伴生对象:即指一个Scala代码文件中 既定义了 object 单例对象,又有 class定义的 类对象,且两个 类对象名称相同eg:...原创 2021-04-19 17:10:33 · 499 阅读 · 0 评论 -
Scala主构造器和辅助构造器
类比下 Java构造器Java构造器 基本语法[修饰符] 方法名(参数列表) { 构造方法体}细节说明1)在 Java 中一个类可以定义多个不同的构造方法(构造器),构造方法重载2)如果程序员没有定义构造方法,系统会自动给类生成一个默认无参构造方法(也叫默认构造器)3)一旦定义了自己的构造方法(构造器),默认的构造方法就覆盖了,就不能再使用默认的无参构造方法,除非显示的定义一下4)子类的构造器默认会调用父类的空参构造器5)如果子类显式的使用super()调用父类转载 2021-04-19 13:17:47 · 772 阅读 · 0 评论 -
Scala中的创建声明 类
1.定义:Scala跟Java的类基本一样,Scala使用 class 关键字声明类class 类名(){}声明类时在参数列表中声明变量eg:class myMethodTest(var var1:Int){ def outPutTest(): Unit ={ println(var1) }} val test = new myMethodTest(1) test.outPutTest()...原创 2021-04-14 18:24:47 · 752 阅读 · 0 评论 -
Scala中的映射map
1.定义:映射是一系列 键值对的容器map中的Key是唯一的分为可变map和 不可变map可变集合:scala.collection.mutable不可变集合:scala.collection.immutable默认使用 不可变集合, 使用可变map需要先导入 可变包scala.collection.mutable2.声明mapval map1 = Map("name" -> "zhangsan", "ag...原创 2021-04-13 16:52:11 · 402 阅读 · 0 评论 -
Scala中的range
1、定义: range是一种数据结构,一种容器, 是一种特殊的 带索引的 不可变的 等差数字序列2.声明:eg:val range1 = new Range(1,5,2)range1.foreach(println(_))输出:ps:println(1 to 5 by 1)println(1.to(5).by(2)) //ps: Scala中万物皆对象, 1 +5 等于 1.+(5)println(1 until 5)输出:...原创 2021-04-09 11:34:25 · 1826 阅读 · 0 评论 -
Scala中的vector向量
1.定义val vector1 = Vector(1,2,33,"爱神的箭")vector1.foreach(println(_))println(vector1.getClass.getName)输出:原创 2021-04-08 17:26:02 · 1271 阅读 · 0 评论 -
Scala中的元祖Tuple
Scala中元祖是一组任意数据类型的集合, 数组 元祖 定义 元素中数据类型相同 元素不同数据类型 声明 val arr = Array(1,2,3) var tuple = (1,"赵四",2.5) 调用元素 arr(1) tuple(_.1) ...原创 2021-04-07 09:30:27 · 230 阅读 · 0 评论 -
Scala中的异常
Java中异常分两种, 受检异常和 非受检异常受检异常:在编程时程序员 编辑好每一种可能异常的处理方法, 确定代码冗余非受检异常:在编程时 程序员 不用设计好 每种异常处理方法, 减少代码冗余Scala中 处理异常 跟Java一致try{} catch{}...原创 2021-04-02 11:52:00 · 190 阅读 · 0 评论 -
Scala中的 方法map和flatMap
map操作map操作是针对集合的典型变换操作,它将某个函数应用到集合中的每个元素,并产生一个结果集合。比如,给定一个字符串列表,我们可以通过map操作对列表的中每个字符串进行变换,让每个字符串都变成大写字母,这样变换后就可以得到一个新的集合。下面我们在Scala命令解释器中,演示这个过程:scala> val books = List("Hadoop", "Hive", "HDFS") books: List[String] = List(Hadoop, Hive, HDFS).转载 2021-03-31 18:16:53 · 897 阅读 · 0 评论 -
Scala迭代器iterator
1.定义:Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。迭代器 it 的两个基本操作是next和hasNext。调用it.next()会返回迭代器的下一个元素,并且更新迭代器的状态。调用it.hasNext()用于检测集合中是否还有元素。让迭代器 it 逐个返回所有元素最简单的方法是使用 while 循环:eg:var inter = Iterator(1, 2, 3, 4)while (inter.hasNext)...原创 2021-03-31 16:50:41 · 724 阅读 · 0 评论 -
Scala中 常用容器类的函数/方法
1foreach迭代遍历集合中的每个元素,对每个元素进行处理 ,但是没有返回值,常用于打印结果数据 !val ls = List(1,3,5,7,9)ls.foreach(println) // 打印每个元素ls.foreach(println(_))// 打印每个元素ls.foreach(x=>println(x*10)) // 每个元素乘以10 打印结果ls.foreach(x=>print(x+" "))// 打印每个元素 空格隔开/*** foreach* 使...转载 2021-03-26 14:41:48 · 748 阅读 · 0 评论 -
Scala中的set集合
Scala Set(集合)是没有重复的对象集合,所有的元素都是唯一的。Scala 集合分为可变的和不可变的集合。默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用scala.collection.mutable.Set包。默认引用 scala.collection.immutable.Set,不可变集合实例如下:1.定义:var set1 =Set(1,"一",2,"er")set1.foreach(x => println(x))输出:...原创 2021-03-26 09:53:06 · 1697 阅读 · 0 评论 -
Scala中sorted、sortBy、sortWith区别
sorted方法真正排序的逻辑是调用的java.util.Arrays.sort。源码:def sorted[B >: A](implicit ord: Ordering[B]): Repr = { val len = this.length val b = newBuilder if (len == 1) b ++= this else if (len > 1) { b.sizeHint(len) val arr = new Array[Any..原创 2021-03-22 17:06:25 · 1622 阅读 · 0 评论 -
Scala中的列表List
Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变, 其次列表 具有递归的结构(也就是链接表结构)而数组不是。scala中的list是一个不可变的列表,有时候我们想直接添加对象不太方便,这个时候可以先转成java的List添加完再转回去.LIst支持在头部快速添加和移除条目,但是不提供快速按下标访问的功能,这个功能需要线性遍历列。快速的头...原创 2021-03-19 17:02:20 · 3023 阅读 · 0 评论 -
Scala中的集合(容器)元素
1.列表2.集合3.map4.元祖5.Option6.Iterator(迭代器)原创 2021-03-19 13:53:17 · 175 阅读 · 0 评论 -
Scala中的数组
Scala中数组需要指定数据类型和长度1.定义:val arr1 = new Array[String](4)生成一个 String类型长度为 4 的数组1.2生成一个可变长度的数组:val buffer = ArrayBuffer[T]()追加方法:+=++=append2.遍历数组var arrB1 = ArrayBuffer[Int]()arrB1.append(1)arrB1.foreach{x => println(x)} ..原创 2021-03-17 17:30:57 · 957 阅读 · 0 评论 -
Scala中字符串的操作
在 Scala 中,字符串的类型实际上是 Java String,它本身没有 String 类。在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的对象1.定义:字符可以用单引号:var character1 = 'a'字符串用 双引号:var greeting = "Hello World!"2.字符串声明后是不可改变的,每次改变都会创建新对象,如果想要改变可以设置为Stri原创 2021-03-17 11:52:59 · 2980 阅读 · 0 评论 -
scala中的循环
1.while跟Java一样eg;var i = 1while(i<10){ print("i is :"+i) i+=1 //ps:不支持 i++}2.do ....while跟Java一样,先执行一次 循环体var i =0do{ print("i is :" +i) i+=1}while(i < 10)3.for3.1基础语法:for( var x <- Range ){ stateme...原创 2021-03-16 18:08:33 · 565 阅读 · 0 评论 -
Scala基础
1.需要运行 使用object类,跟Java不太一样2.main方法也是程序入口,跟Java一样原创 2021-03-15 17:25:46 · 315 阅读 · 1 评论 -
Scala中的判断
1.if2.if ...else2.match原创 2021-03-12 18:06:10 · 837 阅读 · 0 评论