- 博客(19)
- 收藏
- 关注
原创 输入一个链表,反转链表后,输出新链表的表头 java版
public static ListNode reversal(ListNode listNode) { ListNode recorder = null; while(listNode != null) { listNode.next = recorder; recorder = listNode; listNode = listNode.next; } return .
2021-03-22 10:35:17
242
原创 spark RDD的作用域
RDD的作用域也叫做closures,在RDD代码外部定义的对象,一旦放到RDD的closures里面,就会被以序列化的方式传输到工作机上,并且难以保证同步。var counter = 0var rdd = sc.parallelize(data)// Wrong: Don't do this!!rdd.foreach(x => counter += x)println("Counter value: " + counter)比如上述代码中,foreach的作用域是RDD的clo
2021-03-15 15:13:24
241
原创 spark对一维数组求平均值
val initialScores = Array(1,2,3,4,5)val nums = spark.sparkContext.parallelize(initialScores)val sum = nums.map(x=>(x,1)).reduce((x,y)=>(x._1+y._1,x._2+y._2))println(sum._1/sum._2)思路:通过map加一个用于计数的维度,然后通过reduce计算,求出和与数量,最后做商求平均值...
2021-03-15 10:27:59
669
原创 combineByKey用法
首先看定义。def combineByKey[C]( createCombiner: V => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C, partitioner: Partitioner, mapSideCombine: Boolean = true, serializer: Serializer = null)我是从https://blo...
2021-03-12 14:57:38
790
原创 reduceByKey中的加号是什么意思
做了实验输入val rdd = spark.sparkContext.parallelize(Array("x 3y","x y","x y")).map(x=>(x.split(" ")(0),x.split(" ")(1))).reduceByKey((x,y) => x +y).foreach(println)输出:(x,3yyy)可知+是对第二个键值的运算,跟第一个键值对无关。如果第二个键值是字符串,+号是联接操作。如果第二个键值是数字 ,+ 是求和。...
2021-03-11 16:57:21
242
原创 虚拟机安装linux首次配置ip地址
安装操作系统时,打开网络选项,等系统装好后,会自动配置一个动态ip地址,此时虚拟机是能够上网的ping www.baidu.com 可以通。但是ip是动态的,每次重启ip会变化,不方便后续开发,因此要把ip改成固定的。首先打开动态ip对应的配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33一般是ifcfg-ens33,也可能是别的名字,但是都在/etc/sysconfig/network-scripts/这个文件下。你可以看到安装li.
2021-03-02 16:59:03
492
原创 scala for循环的哪些梗
scala中的if可以写到for的括号里面object forLearn { def main(args: Array[String]): Unit = { i为1到10,不可更改 for (i <- 1 to 10 if i % 2 == 0) { println(i) } i为1到9,不可更改 for (i <- 1 until 10 ) { if (i % 2 == 0) println(i) .
2021-03-01 15:42:26
157
原创 如何在scala shell里写多行代码
一种方式是用分号来分割命令,另外一种方式是:首先:paste 回车。然后scala shell就变成了记事本的效果。输入多行代码按Ctrl+D 执行代码。按Ctrl+C退出scala shell。
2021-03-01 15:00:00
808
原创 try catch中的catch里写什么
如果没有写异常处理代码,程序遇到异常就会停止。而写了异常处理,程序会跳过这个错误,继续执行。同时打印日志信息,告诉维护程序的人发生了什么错误。异常处理的代码是 try catch,try是检测的代码,catch是捕获异常,catch里面的结构类似于switch语句,可以捕获到不同的异常。细分异常对于运维系统很有用。如果是用户输错了边界值导致的,就可以忽略,如果是硬盘满了,那就要通知运维人员。但异常有很多种,我们很难记住都是什么类型的异常,一般情况下按 Ctrl+Alt+t 会生成异常处理代码
2021-02-25 10:36:29
6796
5
原创 new 类().{方法定义}.方法 spark中匿名内部类的使用
有时候看到 new 类().{方法定义}.方法 这种怪异的代码,是匿名内部类的用法。public class practice { public static void main(String[] args) { new tools(){ @Override public void work() { System.out.println("实现接口并调用接口"); } .
2021-02-20 14:50:52
316
原创 new 类().new 类()的用法
有时候看到:new 类名1().new 类名2() 这种代码。类名1是普通类,类名2是在类名1定义的类,也成为内部类。public class practice { public static void main(String[] args) { outer.inner i = new outer().new inner(); i.work(); }}class outer{ class inner{ void wor
2021-02-20 14:07:11
2636
原创 为什么在重载方法时使用@Override与super
通过super调用父类中的方法,可以减少重复代码,便于修改。@Override用于让编译器检测重载方法是否误写成了新的方法。public class practice { public static void main(String[] args) { Sun s =new Sun(); s.show(); }}class Dad{ public int age; Dad(int age) { this.a
2021-02-20 09:55:49
384
原创 什么时候必须使用this指针
原则:当方法形参与成员变量重名时,必须使用this指针来调用类的成员。public class practice { public static void main(String[] args) { Sun s =new Sun(); s.show(); }}class Dad{ public int age; Dad(int age) { this.age = age; } void show
2021-02-20 09:07:40
1710
原创 什么时候在子类构造方法中必须调用super构造方法?
原则:当父类仅有带有参数的构造方法时,子类的构造方法中必须使用super(参数)super()表示父类的构造方法,子类默认调用父类无参构造方法。一旦父类仅定义了带参数的构造方法,表示创建父类必须使用带参数构造方法,不接受new父类时不带参数,那么此时子类里默认的调用super()就会报错,必须手动加上含有参数的构造方法。public class practice { public static void main(String[] args) { Sun s =new
2021-02-20 09:00:19
1857
原创 父类与子类成员的调用顺序
原则:本类方法优先调用本类成员。如public class practice { public static void main(String[] args) { Sun s =new Sun(); s.show(); }}class Dad{ public int age=35;}class Sun extends Dad{ public int age=10; void show(){ Syst
2021-02-20 08:34:38
373
原创 重载maven dependencies的方法
发现maven dependencies里缺少pom文件引用的jar包无论怎么clean install都无济于事。后来从eclipse里删掉工程,重新import,搞定。
2017-06-26 11:06:18
1360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人