
scala
文章平均质量分 52
风是外衣衣衣
这个作者很懒,什么都没留下…
展开
-
scala中 伴生类和伴生对象的使用(为什么new可以省略)
package com.cxb.demo.chapter11/** * @Auther: sss * @Date: 2020/1/2 15:59 * @Description: */object ApplyDemo { def main(args: Array[String]): Unit = { //这里new出来的是 伴生类 的一个实例 val d...原创 2020-01-02 16:26:17 · 564 阅读 · 0 评论 -
Scala中Case Class与匹配模式是怎么回事
一.匹配模式Scala中匹配模式,类似与Java中的Switch。不过,Scala中匹配模式避免了Java Switch忘记Break时,穿透的问题。演示如下: for(i <- 1 to 100){ i match{ case 10 => println(10) case 50 => println(50) ...转载 2019-12-03 15:04:58 · 397 阅读 · 0 评论 -
Scala中 class和case class的区别
在Scala中存在case class,它其实就是一个普通的class。但是它又和普通的class略有区别,如下: 1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;scala> case class Iteblog(name:String)defined class Iteblog scala> val iteblog = Iteblog("i...转载 2019-12-03 14:02:32 · 898 阅读 · 0 评论 -
用java代码来理解scala中的伴生类、伴生对象
初次接触这两个概念觉得怪怪的。写了段代码测试了一下,帮助自己理解。scala里面没有 static 关键字。那么如果想实现static的效果要怎么做呢? ==》 可以使用伴生对象在同一个scala文件中定义一个类,同时定义一个同名的object,那么它们就是伴生类和伴生对象的关系,可以互相直接访问私有的field。伴生对象通常会使用apply函数定义伴生类的构造方法。 这样在创建伴生...转载 2019-12-02 18:34:23 · 427 阅读 · 0 评论 -
scala中的foldLeft、foldRight
fold, foldLeft, and foldRight之间的区别 主要的区别是fold函数操作遍历问题集合的顺序。foldLeft是从左开始计算,然后往右遍历。foldRight是从右开始算,然后往左遍历。而fold遍历的顺序没有特殊的次序。case class Foo(val name: String, val age: String, val sex: String)Obj...转载 2019-12-02 18:31:59 · 522 阅读 · 0 评论 -
scala中split(" ") 和 split(" ", -1) 区别
做实验表明: 1.如果字符串最后一位有值,则没有区别, 2.若干最后n位都是切割符,split(" ")不会继续切分,split(" ", -1)会继续切分String line = "a b c "; String [] tmp = line.split(" "); System.out.println(tmp.length+"...转载 2019-11-29 16:56:20 · 1706 阅读 · 2 评论 -
scala中zip、case你不知道的用法
zip的用法 def main(args: Array[String]): Unit = { /*val buf = new StringBuilder // buf += "a" //添加单个字符用 += 多个字符用 ++= buf ++= "11_12,22_23,33_34,11_13,33_35," buf ++= "12_11,11_134...原创 2019-11-28 17:15:01 · 314 阅读 · 0 评论 -
Scala中for循环的yield用法
**概念**for循环中的yield会将for循环中的值保存下来,保存到一个集合中,在循环结束的时候会将集合全部输出,如果被循环的是map,则输出的就是map。如果被循环的是list,则输出的就是list,以此类推。使用println进行输出scala> for (i <- 1 to 5) | println (i)12345使用yield...转载 2019-11-27 17:31:03 · 1137 阅读 · 0 评论 -
scala中substring使用
object Test { def main(args: Array[String]) { val buf = new StringBuilder; // buf += "a" //添加单个字符用 += 多个字符用 ++= buf ++= "LINESTRING(109.378906132593 24.302867,109.379106202465...原创 2019-11-27 16:33:06 · 4518 阅读 · 0 评论 -
【Scala】数组Array、列表List、集合Set、元组Tuple
1、数组数组可以用来存储固定大小的同一个类型的元素。定义之后可以通过下标来访问元素值,下标从0开始。下面的代码定义了一个可以存放2个元素的 字符串数组(默认情况下会自动import 长度不可变化的数组),当给下标为2的元素赋值时会报错,因为越界了:scala> var x:Array[String] = new Array[String](2)x: Array[String]...转载 2019-11-18 12:03:36 · 531 阅读 · 0 评论 -
Scala可变数组与不可变数组的区别、可变集合与不可变集合的区别、Array与ArrayBuffer的区别、List与ListBuffer的区别
不可变数组与可变数组的区别Array与ArrayBuffer的区别Array为不可变数组,ArrayBuffer为可变数组,两则的区别比较好理解:不可变指的是长度不可变。Array不能添加或删除元素,没有+=和-=方法;而ArrayBuffer可以添加或删除元素。注意点:Array和ArrayBuffer都可以修改元素,修改方法:array(0)=12,0为下标,12为新值。测试如下...转载 2019-11-13 17:24:48 · 1814 阅读 · 2 评论 -
spark读取excel表格
参考资料:https://blog.youkuaiyun.com/qq_38689769/article/details/79471332参考资料:https://blog.youkuaiyun.com/Dr_Guo/article/details/77374403?locationNum=9&fps=1pom.xml: <!--读取excel文件--> <dep...原创 2019-10-29 18:03:55 · 9908 阅读 · 9 评论 -
sparkSQL读取Excel表格
转自:https://www.cnblogs.com/shenyuchong/p/10291604.html编码初始化SparkSessionstatic{ System.setProperty("hadoop.home.dir", HADOOP_HOME); spark = SparkSession.builder() .appName("...原创 2019-10-29 17:44:58 · 3098 阅读 · 1 评论 -
scala java.util.regex.PatternSyntaxException:Unclosed character class near index 0 [ ^
数据:[1596861][1599051][1599347][1616105][1617118][1629390][1636703][1638234][1643054][1655674]代码: val datas = spark.read.textFile("C:\\Users\\sss\\Desktop\\result.txt") // datas.t...原创 2019-10-29 15:02:53 · 774 阅读 · 0 评论 -
split切分“”(双引号)
case class AA(a1: Float, a2: Float, a3: Float, a4: Float, a5: Long, a6: Long, a7: Long, a8: Long, a9: Long, a10: Long)// 数据:"39.7219951040737","116.345595326719","39.721947425764","116.34554536699...原创 2019-10-28 14:13:07 · 2613 阅读 · 0 评论 -
当value中是数组的时候,reduceByKey的用法
val etlData = etledRDD.map { log => val fields = log.split(delimiter) val lat = fields(3).toDouble val lon = fields(4).toDouble val roadid = fields(0) val speed = fields(8).t...原创 2019-10-28 14:10:24 · 480 阅读 · 0 评论 -
spark处理json数据Demo
/** * @Auther: sss * @Date: 2019/2/26 14:24 * @Description: * ps:数据是json 如下(数据是a#b#格式) 需求:lat,lng;timestamp#lat,lng;timestamp#lat,lng;timestamp (最后要是a#b格式) */object xiaoM {...原创 2019-02-26 17:07:22 · 3098 阅读 · 0 评论 -
scala之聚合函数aggregate
网上搜了搜没有这方面的资料,, 自己听老师讲的也是一知半解,先把自己理解的记录下来吧,不对的地方以后再修改val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0)) arr.aggregate(0)(_+_.reduce(_+_),_+_)运算步骤:(_+_.reduce(_+_)) 先计算 list1 1+2+3 6 (_+_...原创 2018-03-23 11:35:44 · 6134 阅读 · 2 评论 -
scala常用函数
1.过滤:filterval list1 = List(1,2,3,4,5,6,7,8,9)val list2 = list1.filter(_%2==0)2.foreach (注意和map的区别)val list3 = List(32,12,56,98,3)注:如果用map遍历会产生空的数组list3.map(x => println(x))但是foreach就不会l...原创 2018-03-24 17:43:00 · 521 阅读 · 0 评论 -
scala之abstract(抽象类) trait(接口)
package main.count//定义抽象类abstract class Abs1{ def a () def b () def c (): Unit ={ println("cc") }}//定义接口1trait tra1{ def t1()}//定义接口2trait tra2{ def t2(){ println("t2t2t2...原创 2018-03-26 20:02:58 · 427 阅读 · 0 评论 -
scala常用的聚合函数
1.过滤:filterval list1 = List(1,2,3,4,5,6,7,8,9)val list2 = list1.filter(_%2==0)2.foreach (注意和map的区别)val list3 = List(32,12,56,98,3)注:如果用map遍历会产生空的数组list3.map(x => println(x))但是foreach就不会l...原创 2018-04-09 22:58:04 · 2569 阅读 · 0 评论 -
图文教你用idea创建scala(不能创建scala,不能安装scala插件)
解压Scala到指定目录tar -ZCWvf scala-2.10.6.tgz -C /usr/java配置环境变量,将scala加入到PATH中vi /etc/profileexport JAVA_HOME=/usr/java/jdk1.7.0_45export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin 安装好idea之后创建mav...原创 2018-05-28 19:22:52 · 5937 阅读 · 2 评论 -
scala报错,无法加载到主类
原创 2018-07-04 00:50:37 · 2732 阅读 · 0 评论 -
创建scala的maven项目步骤
jdk 1.8(scala2.10.6是不行的)用的scala版本是2.11.8创建步骤 2.3.4.进来后找时间用语音再补充原创 2018-07-04 01:09:50 · 5567 阅读 · 0 评论 -
在官网下载idea插件的正确方式(scala)
1. 百度 搜索 plugins jetbrains 2.一般都会选择ultimate (最终版) 点进去 选择 scala 点击 再根据自己idea的版本下载相对应得插件(版本不对应不好使) 再根据上面的12345 注意要看5这里的日期下载的时候得对应这个5 到此就ok了 ...原创 2018-11-08 18:42:00 · 7162 阅读 · 1 评论 -
scala 获取当前日期
转自:版权声明:本文为博主原创文章,出处为 http://blog.youkuaiyun.com/silentwolfyh https://blog.youkuaiyun.com/silentwolfyh/article/details/51792039 package com.yh.hbaseusers import java.time.LocalDate/** * Created by silen...转载 2018-12-14 13:48:42 · 9977 阅读 · 1 评论 -
Exception in thread "main" java.lang.NoSuchMethodError
https://blog.youkuaiyun.com/weipanp/article/details/45098669 转自报错:Exception in thread "main" java.lang.NoSuchMethodError: scala.reflect.api.JavaUniverse.runtimeMirror(Ljava/lang/ClassLoader;)Lscala/refl...转载 2018-12-07 16:33:57 · 993 阅读 · 0 评论 -
spark连接hive的两种方式
在pom中添加依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...原创 2018-12-18 14:12:38 · 30108 阅读 · 4 评论 -
显示当前时间(按照秒算)
package emg.branchs.testimport java.time.{LocalDateTime, ZoneOffset}/** * @Auther: sss * @Date: 2019/1/4 13:49 * @Description: */object Tests1 { def main(args: Array[String]): Unit = ...原创 2019-01-04 16:02:13 · 1442 阅读 · 0 评论 -
scala创建maven项目 常用pom文件
注意自己scala的版本与集群版本是否匹配 不匹配会报错我的是scala 2.11.8 hadoop2.7.2 spark-2.1.1<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http...原创 2019-01-04 16:12:47 · 4195 阅读 · 0 评论 -
Scala常用方法大全(附代码案例)会不定时更新
转自:https://blog.youkuaiyun.com/JENREY/article/details/807271681.flatten可以把嵌套的结构展开.scala> List(List(1,2),List(3,4)).flattenres0: List[Int] = List(1, 2, 3, 4)2、flatmapflatMap结合了map和flatten的功能。接收一...转载 2019-01-30 11:13:07 · 375 阅读 · 0 评论 -
用scala统计单词个数一步一步详解
val lines = List("hello tom hello jerry", "hello jerry", "hello kitty") //先按空格切分val lines_1 = lines.map(_.split(" "))//压平val lines_2 = lines_1.flatten//用flatMap 两步合并成一步val words= lines.flatMap(_.sp...原创 2018-03-22 17:12:02 · 8548 阅读 · 0 评论