自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@潇洒哥

分享技术,分享生活,相互学习~

  • 博客(16)
  • 收藏
  • 关注

原创 RDD

1、什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续查询能重用工作集,这极大地提升了查询速度。2、RDD的属性(1...

2018-10-12 08:20:31 217

原创 简单的Spark案例——课程学习量统计

需求:如下图的文件中有很多访问记录,第一列表示访问站点的时间戳,第二列表示访问的站点,中间用制表符分割。这里相当于学习的不同课程,如java,ui,bigdata,android,h5等,其中每门课程又分为子课程,如h5课程分为teacher,course等。现在需要统计每门课程,学习量最高的两门子课程并降序排列。测试数据下载地址链接:https://pan.baidu.com/s/1D...

2018-10-12 00:16:40 2966 3

原创 范型

范型: [B <: A] UpperBound 上界:B类型的上界是A类型,即B类型的父类是A类型 [B >: A] LowerBound 下界:B类型的下界是A类型,即B类型的子类是A类型 [B <% A] ViewBound 表示B类型要转换成A类型需要一个隐式转换函数 [B : A] ContextBound 表示B类型要转换成A类型需要...

2018-10-12 00:07:55 201

原创 隐式转换

隐式转换和隐式参数 作用:能够丰富现有类库的功能,对类的方法进行增强 隐式转换函数:以implicit关键字声明并带有单个参数的函数 package testimport scala.io.Source/** * @author: whua * @create: 2018/10/08 15:29 */class RichFile(val file: ...

2018-10-11 08:56:37 103

原创 Currying

柯里化:把接收多个参数的函数变成接收一个参数的函数柯里化的两种声明方法: def curry(x:Int)(y:Int) = x*y def curry(x:Int) = (y:Int) => x*y package test/** * @author: whua * @create: 2018/10/08 14:38 */object Curry...

2018-10-11 08:55:08 231

原创 模式匹配

字符串匹配package test.matchdemoimport scala.util.Random/** * @author: whua * @create: 2018/10/08 10:06 * 匹配字符串 */object MatchStr { def main(args: Array[String]): Unit = { v...

2018-10-11 08:53:25 153

原创 抽象类 & 特质

特质trait类似于Java中的接口,一个类可以同时继承多个trait,但是一次只能继承一个类。trait和抽象类中,都可以定义没有赋值的字段,没有实现的方法,有实现的方法,在实现或继承的时候,必须给没有赋值的字段赋值,必须实现没有实现的方法,有实现的方法也可以重写。继承class的关键字为extends,继承trait的关键字为with;当没有继承class,只继承trait时,用ext...

2018-10-11 08:49:58 195

原创 private的使用

在类中用private修饰的字段,只能在本类和其伴生对象中访问。在类中用private[this]修饰的字段,只能在本类中访问。类名前加private[包名]是指包访问权限,只有这个包有该类的访问权限。构造器参数列表前加private是指伴生对象的权限,只有伴生对象才能访问。package test/** * @author: whua * @create: 201...

2018-10-11 08:48:44 6899

原创 apply 与 unapply 方法

apply方法通常称为注入方法,在伴生对象里做一些初始化的操作。apply方法的参数列表不需要和构造器的参数列表统一。unapply方法通常称为提取方法,使用unapply方法来提取固定数量的对象。unapply方法会返回一个序列(option),内部产生一个Some对象来存放一些值。apply方法和unapply方法会被隐式调用。package test/** * ...

2018-10-11 08:47:51 971

原创 伴生对象

与类名相同并且用object修饰的对象叫做伴生对象。类和其伴生对象之间可以相互访问私有方法和属性。package test/** * @author: whua * @create: 2018/09/30 11:09 */class Dog { private var name = "二哈" def printName(): Unit = { //...

2018-10-11 08:46:40 210

原创 类:class

声明类时不需要加public关键字,默认就是public,类名通常与文件名相同。一个类文件可以声明多个类。scala类中不需要自己定义get和set方法,用val修饰的变量时只读的,相当于只有get方法,没有set方法;用var修饰的变量相当于既有get又有set方法。用private修饰的属性,该属性属于私有属性,只能在本类和其伴生对象中访问。用private[this]修饰的属...

2018-10-11 08:44:24 394

原创 构造器:Structor

主构造器的参数列表要放在类名的后面,和类名放在一起。val修饰的构造参数具有不可变性,var修饰的构造参数具有可变性。没有加val或者var修饰的构造参数,默认是val的,但是该构造参数只能在本类调用,伴生对象也无法调用,如果要在其它类中访问,可以定义一个get方法来获取。辅助构造器类似于java中的多构造器,可以有不同的构造参数,辅助构造器的第一行必须先调用主构造器。packa...

2018-10-11 08:43:22 1537

原创 object

在scala中是没有静态方法和静态字段的,但是可以使用object关键字来实现同样的功能。1、工具类,存放常量和工具方法2、实现单例模式package testimport scala.collection.mutable.ArrayBuffer/** * @author: whua * @create: 2018/09/29 20:43 */object S...

2018-10-11 08:39:16 143

原创 Spark WordCount 两种运行方式

用Scala编写WordCount程序,在IDEA中可以通过(1)新建maven项目,在pom文件中引入Spark,Scala,Hadoop相关的依赖包来开发;(2)新建普通的Scala项目,然后将相关的jar包导入到项目中,同样可以来开发。一般来说,采用maven的方式来进行开发会比较方便,Spark WordCount的pom文件如下:<project xmlns="http:...

2018-10-10 00:17:12 3026 1

原创 启动Spark在UI界面上看不到worker节点的信息

问题描述作者是在centos上安装spark-2.3.0-bin-hadoop2.7.tgz,当配置好spark-env.sh,改好slaves文件之后,在sbin/目录下运行命令./start-all.sh来启动Spark时,发现没有报错,以为启动成功,但是在Spark的UI界面上看不到worker的信息。此时第一反应都是worker节点启动失败,然后会用jps命令去查看,但是惊喜地发现Wo...

2018-10-09 19:13:13 8628 3

原创 排序算法(Java)

直接插入排序 /** * @Description: 直接插入排序 * @Param: [a] * @return: void */ public static void insertSort(int[] a){ if (a.length==0) return; int tmp; ...

2018-05-05 14:36:39 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除