
scala
爱你魔力转圈圈
深圳搬砖ing
展开
-
爬取网页源码之scala篇
为了获取网页代码,一般人是想到直接ctrl+s,就可以保存了。确实比较方便,但是如果遇到子网页比较多就不行了。为了方便批量获取网页代码,一个会java或者scala的程序员就不一样了。比如:上代码:import java.io.{File, PrintWriter}import scalaj.http.Http/** * author:liming * time:2022-01-01 * tittle:爬取网页源码 * * 需要配置依赖 * <dependency&g原创 2022-01-01 23:11:25 · 524 阅读 · 0 评论 -
在scala项目中的java代码无法编译问题
在pom.xml中加入下面配置,就可解决java代码的编译问题<plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.4.6</version> &l原创 2021-07-20 16:28:05 · 641 阅读 · 2 评论 -
RDD练习(二)
1.aggregateByKey val rdd1 = sc.parallelize(List(("tom",20),("tom",12),("tom1",18),("tom1",19),("tom2",22),("tom2",10),("tom2",30),("tom1",19)),2) rdd1.aggregateByKey(0)(math.max(_,_),_+_).collect结果 res38: Array[(String, Int)] = Array((tom2,30),原创 2020-08-26 07:32:11 · 248 阅读 · 0 评论 -
RDD练习(一)
1sortByval rdd3 = sc.parallelize(List(1,2,3,4,19,29,10)) rdd3.map(_*2).sortBy(x=>x).collect rdd3.map(_*2).sortBy(x=>x,false).collect2.filter val rdd3 = sc.parallelize(List(1,2,3,4,19,29,10)) rdd3.map(_*2).filter(_>10).collect (过滤)原创 2020-08-25 21:38:10 · 662 阅读 · 0 评论 -
创建RDD的方式
创建rdd的两个方法1.指定文件进行创建val rdd1= sc.textFile(“hdfs://hlm1:9000/user/spark”)2.使用parallelize进行创建2.1传递Seq作为参数val rdd2 = sc.parallelize(Seq((“xiaoli”,18),(“xiaoli1”,19),(“xiaoli2”,20),(“xiaoli3”,21)))2.2传递Array作为参数val rdd3 = sc.parallelize(Array((“xiaoli”,原创 2020-08-25 20:17:46 · 481 阅读 · 0 评论 -
闭包函数(scala)
闭包函数代码//闭包函数 返回结果 依赖外部参数object FunDemo1 extends App { //正常函数 val mult=(x:Int)=>{x*5} //闭包函数 var factor=5//依赖参数 //闭包函数mult1 val mult1=(x:Int)=>x*factor println("闭包函数(mult1):在factor="+factor+ "时,结果为 "+mult1(10)) factor = 10原创 2020-08-14 07:15:21 · 208 阅读 · 0 评论 -
柯里化(scala)
柯里化代码/*柯里化 把接收到多个参数的函数变成接受一个单一参数的函数,返回一个接受余下参数的新函数 */object CurrDemo extends App{ //创建一个普通函数 def add(x:Int,y:Int)=x+y println("普通方法(add):"+add(1,3)) //柯里化后的方法 def curryAdd(x:Int)(y:Int):Int=x+y println("柯里化后的方法(curryAdd):"+curryAdd (1原创 2020-08-14 07:13:54 · 211 阅读 · 0 评论 -
函数的嵌套(scala)
函数的嵌套代码//方法的嵌套object MethodDemo extends App{ //factor方法 def factor(x:Int):Int={ //嵌套方法 def fact(x:Int,accumltor:Int):Int={ if(x<=1){ //println("accumltor(if)="+accumltor) accumltor } else { //println("accuml原创 2020-08-14 07:10:26 · 204 阅读 · 0 评论 -
正则表达式匹配字符串(scala)
正则表达式匹配字符串代码import scala.util.matching.Regexobject RegDemo extends App{//构建正则表达式 //方式一 val pattern1="[0-9]+".r //方式二 val patter2=new Regex("[0-9]+") //方式三 val patter3 = """\s+[0-9]+\s"""//如果正则表达式有斜杆或者引号,可以使用""" ..."""" //匹配字符串 val m原创 2020-08-14 07:09:27 · 1452 阅读 · 0 评论 -
高阶函数(scala)
scala之高阶函数代码/** * 高阶函数 * * 高阶函数要求参数是函数或者返回值是函数 */object HfunDemo extends App{ //高阶函数要求参数是函数或者返回值是函数 //参数是函数 val arr =Array(1,2,3,4,5) val fun=(x:Int)=>x*2 //1.参数是函数(fun) val res =arr.map(fun) //2.参数是函数(匿名函数) val res2 = arr.m原创 2020-08-13 14:58:22 · 121 阅读 · 0 评论 -
scala之读取网络资源
读取网络资源代码 val URL="https://blog.csdn.net/qq_42706464" val source= Source.fromURL(URL) val lines = source.getLines() for(line<- lines){ println(line) } source.close()运行结果<!DOCTYPE html><html lang="zh-CN"><head> &原创 2020-08-13 14:43:27 · 1242 阅读 · 0 评论 -
scala之文件读写
文件读写import java.io.PrintWriterimport scala.io.Sourceobject FileDemo extends App { //写入操作 //创建一个printwriter对象 val out = new PrintWriter("src/main/scala/com/jxlg/before2/day5/fileresult.txt") for(i<- 1 to 10){ //使用printwriter的print原创 2020-08-13 11:28:18 · 299 阅读 · 0 评论 -
scala密封类
密封类代码/*密封类1.可以避免滥用继承2.用在模式匹配 */sealed abstract class Furniturecase class Couch() extends Furniturecase class Chair() extends Furnitureclass SealedDemo { def findPlaceTosit(furniture: Furniture):String=furniture match{ case a:Couch=&g原创 2020-08-13 10:58:57 · 261 阅读 · 0 评论 -
scala之插值器
插值器 s字符串插值器 f插值器 raw插值器代码object StringDemo {//插值器 //s字符串插值器 def main(args: Array[String]): Unit = { val name = "jerry" val res = s"hell,$name" println("s插值器(hell,$name):"+res) //对$大括号里面的表达式进行运算 val res1 = s"1+1=${1 + 1}"原创 2020-08-13 10:52:47 · 318 阅读 · 0 评论 -
scala之信息甄别、模式匹配
scala模式匹配代码import scala.util.Random//做一个信息的甄别object Patter2 { def main(args: Array[String]): Unit = { abstract class NotFaction //定义不同信息的样例类 case class Email(send:String,title:String,body:String) extends NotFaction case class原创 2020-08-13 10:35:10 · 139 阅读 · 0 评论 -
scala之偏函数
scala偏函数 普通偏函数 用case定义偏函数 组合多个偏函数 连接偏函数代码object Partion{ //普通函数 val div1=(x:Int)=>100/x //偏函数 val div2=new PartialFunction[Int,Int]{ //先进行第一个函数的调用 def isDefinedAt(x:Int):Boolean=x!=0 def apply(x:Int):Int=100/x } //用case定原创 2020-08-13 10:18:24 · 241 阅读 · 0 评论 -
scala之样例类
scala样例类代码//样例类object CaseDemo { def main(args: Array[String]): Unit = { //定义样例类 //构造函数的参数默认是public case class Message( var sender:String,recipient:String ,body:String) //创建样例类的对象 val messagel=Message("Jerry","Tom","Hello")原创 2020-08-13 09:57:50 · 305 阅读 · 0 评论 -
scala之特质
scala的特质代码//定义一个特质,带有抽象方法的特质trait Iterator[A]{ def hasNext:Boolean def next():A}class Intlterator(to:Int) extends Iterator[Int]{ private var current=0 //重写hasNext方法,如果传入的A既现在的to:Int 大于 属性current返回true override def hasNext: Boolean = cur原创 2020-08-13 09:50:11 · 138 阅读 · 0 评论 -
伴生对象的apply和unapply方法
伴生对象的apply和unapply方法//user类 参数name和passwordclass User(val name:String,val password:String) {}//user伴生对象object User{ def apply(name: String, password: String): User = new User(name, password) def unapply(arg:User):Option[(String,String)]={ if原创 2020-08-13 09:40:44 · 243 阅读 · 0 评论