自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 idea @Override is not allowed when implementing interface method

在编码过程发现报错:@Override is not allowed when implementing interface method 。解决方法:1、在project/module上,右键选择菜单“Open Module Settings” ;2、选择Modules,修改“Language Level” 为 “8-Lambdas,……”;3、选择Project, 修改“Proje...

2018-08-29 11:36:01 67

转载 Flink事件时间处理和水印

原文:http://vishnuviswanath.com/flink_eventtime.html 译文:https://blog.csdn.net/a6822342/article/details/78064815

2018-08-09 18:10:35 585

原创 maven项目依赖显示缺少jdk1.6 tools.jar

方法一:然后在pom.xml中添加: <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.6</version> &am

2018-07-23 09:27:00 1799 1

原创 Java8 Stream

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行...

2018-06-24 21:10:51 86

转载 Kaggle_Titanic生存预测

强烈推荐 http://blog.csdn.net/Koala_Tree/article/details/78725881

2018-03-16 21:50:24 252

原创 Java8的Lambda表达式

Lambda是一个匿名函数,可以把Lambda表达式理解为一段可以传递的代码。通过Lambda表达式可以写出更简洁、更灵活的代码,提升了Java语言的表达能力。从匿名类到Lambda的转换Java8之前的匿名内部类:Comparator<Integer> com = new Comparator<Integer>() { @Override ...

2018-03-14 16:42:55 217

原创 NullPointerException at org.apache.cxf.jaxrs.client.AbstractClient.setupOutInterceptorChain

使用cloudera manager的API获取集群的参数时,使用maven编译后无法正常运行,抛出异常解决方法:在pom.xml文件中的maven-shade-plugin模块添加如下内容:           META-INF/cxf/bus-extensions.txt

2018-01-16 16:26:40 216

原创 python学习--list

#encoding=utf8#1.1创建列表类型数据并给它赋值aList = [123,'abc',4.56,['inner','list'],7-9j]anotherList = [None,'something to see here']print (aList)print (anotherList)aListThatStartedEmpty = []print (

2017-10-23 17:09:43 189

转载 卡特兰数

Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。卡特兰数的前几个数 前20项为(OEIS中的数列A000108):1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 267444

2017-09-29 13:56:03 187

转载 spark partitioner使用技巧

spark partitioner使用技巧以下源码分析基于Spark-1.5.2在Spark的PairRDDFunctions,OrderedRDDFunctions这两个类中,都会用到RDD的partitioner信息.具体使用到的partitioner的方法如下:combineByKeyaggregateByKeygroupByKeyreduceByKeycog

2017-09-03 21:40:46 309

转载 Linux tr命令详解

tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。语法tr(选项)(参数)选项-c或——complerment:取代所有不属于第一字符集的字符; -d或——delete:删除所有属于第一字符集的字符; -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; -t或--truncate-

2017-08-24 20:44:03 329

原创 ubuntu-E:Encountered a section with no Package: header的解决办法

使用ubuntu 12.04,sudo apt install sysstat,出现如下错误:E: Encountered a section with no Package: headerE: Problem with MergeList /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_xenial-security_main_bi

2017-08-23 23:30:22 234

原创 RDD转换为DataFrame案例

文件students.txt中内容如下:1,leo,172,marry,173,jack,184,tom,191. 使用反射方式将RDD转换为DataFrameJava代码如下:public class RDD2DataFrameReclection { public static void main(String[] args) { SparkConf c

2017-08-15 20:01:38 1089

转载 ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock

ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock通过终端安装程序sudo apt-get install xxx时出错:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock

2017-08-09 22:15:34 201

原创 Linux sort指令

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。# cat sort.txthello:1:5hello:1:5world:2:5tom:4:3hi:3:2hello:1:5#sort sort.txt hello:1:5hello:1:5hi:3:2tom:4

2017-08-08 20:44:32 161

原创 SparkContext的初始化机制

1. createTaskScheduler():创建SparkScheduler,SparkDeploySchedulerBackend(它在底层负责接收TaskSchedulerImpl的控制,实际上负责与Master的注册,Executor的反注册,task发送到Executor等操作),调用TaskSchedulerImpl的init()方法,创建SchedulePool,它有不同的优先策

2017-07-30 21:45:10 246

原创 xargs命令详解

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令行进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xagrs的默认命令是echo,这意味着通过管道传递给xagrs的输入将会包含换行和空白,不过,通过args的处理,换行和空白将被空格取代。参数解释:-0:当s

2017-07-28 23:37:22 328

转载 Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法

在Windows下用文本编辑器创建的文本文件,如果选择以UTF-8等Unicode格式保存,会在文件头(第一个字符)加入一个BOM标识。这个标识在Java读取文件的时候,不会被去掉,而且String.trim()也无法删除。如果用readLine()读取第一行存进String里面,这个String的length会比看到的大1,而且第一个字符就是这个BOM。这

2017-07-27 15:56:11 202

原创 Scala学习—隐式转换与隐式参数

scala隐式转换,其实最核心的就是定义意识转换函数,即implicit conversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被scala自动使用。scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外一种类型的对象并返回。这就是“隐式转换”。隐式转化通常不会由用户手动调用,而是由sc

2017-07-26 13:59:10 203

原创 Scala学习—类型参数

泛型类使用泛型类,通常是需要对类中的某些成员,比如field和method中的参数或变量,进行统一的类型限制,这样可以保证程序更好的健壮性和稳定性。如果不使用泛型进行统一的类型限制,那么在后期程序运行过程中,难免会出现问题,比如传入了不希望的类型,导致程序出问题。在使用类的时候,如果创建类的对象,将类型参数替换为实际的类型,即可。或者直接给使用了泛型类型的field赋值时,scala会

2017-07-26 13:20:24 152

原创 Scala学习—模式匹配

scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对Array和LIst的元素进行匹配、对case class进行匹配、甚至对有值或没值(Option)进行匹配。scala是没有java中的switch case语法的,相对应的,scala提供了更加强大的match case语法,即模式匹配,替代switch case,match case也被称为模式匹配scala的ma

2017-07-26 10:05:18 513

原创 数据结构复习—队列

1. 队列的基本概念1. 队列的定义队列(Queue):队列简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特点是先进先出(First In First Out,FIFO),故又称为先进先出的线性表,如图所示。 队头(Front):允许删除的一端,又称为队首。 队尾(Rear):允许插入的一端。

2017-07-25 21:20:23 396

原创 数据结构复习—栈

1. 栈的基本概念1.栈的定义栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这种线性表只能在某一端进行插入和删除操作,如图所示。 栈顶(Top):线性表允许进行插入和删除的那一端。 栈底(Bottom):固定的,不允许进行插入和删除的另一端。 空栈:不含任何元素的空表。 假设某个栈S=(a1,a2,a3,a4,a5),则a1为栈底元素,a5为栈顶元

2017-07-25 16:07:28 304

原创 数据结构复习—线性表的链式表示

1. 单链表的定义线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立起数据元素之间的线性关系,对每个链表结点,除了存放元素自身的信息之外,还需要存放一个指向其后继的指针。单链表结点如图所示, data next其中,data为数据域,存放数据元素;next为指针域,存放其后继结点的地址。 单链表中结点类型的描述如下: typedef stru

2017-07-24 23:35:31 244

原创 eclipse报错Resource is out of sync with the file system的解决方法

这是文件系统不同步的问题。解决方法:需要手动刷新一下资源管理器(1)在eclipse或mycelipse中,点击工程目录右键,选择refresh(2)设置eclipse或mycelipse自动刷新,Window->Preferences->General->Workspace,选中Refresh automatically

2017-07-23 23:27:07 307

原创 Scala学习—函数式编程之集合操作

scala的集合体系结构//scala中的集合体系结构主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trait。这个结构与java的集合体系非常相似。//scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。分别对应scala.collection.muta

2017-07-23 10:10:23 252

原创 Scala学习—函数式编程

将函数赋值给变量//scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量//scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name:String) { println("Hello," + name)}val sayHelloFunc = sayHello _sayHelloFunc("le

2017-07-23 09:29:51 164

原创 Scala学习—面向对象编程之Trait

将trait作为接口使用//scala中的Trait是一种特殊的概念//在Trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可//类可以使用extends关键字继承Trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是Trait,统一都是extends//类继承Trait后,必须

2017-07-22 20:49:20 126

原创 Scala学习—面向对象编程之继承

extends//Scala中,让子类继承父类,也是使用extends关键字//继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码//子类可以覆盖父类的field和method;但是如果父类用final修饰,field和method用final修饰,则该类是无法被继承的,fie

2017-07-22 15:03:18 132

原创 Scala学习—面向对象编程之对象

object//object,相当于class的单个实例,通常在里面放一些静态的field或者method//第一次调用object的方法时,就会执行object的constructor,也就是object内部不在method中的代码;但是object不能定义接受参数的constructor//注意,object的constructor只会在其第一次被调用时执行一次,以后再次调用就不会

2017-07-21 22:21:01 128

原创 Scala学习—面向对象编程之类

定义一个简单的类//定义类,包含field以及方法class HelloWorld {private var name = "leo"def sayHello(){print("Hello," + name)}def getName = name}//创建类的对象,并调用其方法val helloWorld = new HelloWorldhelloW

2017-07-21 10:33:27 218 1

原创 Scala学习—Map与Tuple

创建Map//创建一个不可变的Mapval ages = Map("Leo"->30,"Jen"->25,"Jack"->23)ages("Leo")=31//创建一个可变的Mapval ages = scala.collection.mutable.Map("Leo"->30,"Jen"->25,"Jack"->23)ages("Leo")=31//使用另外一种方式定

2017-07-21 09:37:07 122

转载 Spark性能优化指南——高级篇

前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据

2017-07-21 09:30:30 137

原创 数据结构复习-线性表的顺序表示

1.顺序表的定义线性表的顺序存储又称为顺序表。它是用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。第1个元素存储在线性表的起始位置,第i个元素的存储位置后面紧接着存储的是第i+1个元素。因此,顺序表的特点是表中元素的逻辑顺序与其物理顺序相同。假设线性表L存储的起始位置为LOC(A),sizeof(ElemType)是每个数据元素所占

2017-07-20 23:35:19 228

原创 数据结构复习-线性表的定义和基本操作

1.线性表的定义线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列。其中n为表长,当n=0时该线性表是一个空表。若用L命名线性表,则其一般表示如下:L=(a1,a2,...,ai,ai+1,...,an)其中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称为表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个

2017-07-20 23:31:28 307

原创 数据结构复习-归并排序和基数排序

1.归并排序归并排序与基于交换、选择等排序的思想不一样,“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可以看成是n个有序的子表,每个子表长度为1,然后两两归并,得到⌈n/2⌉个长度为2或1的有序表;再两两归并,......如此重复,直到合并成一个长度为n的有序表为止,这种排序方法称为2-路归并排序。Merge()的功能是将前后相邻的两个有序表

2017-07-17 23:32:45 181

原创 数据结构复习-选择排序

选择排序的基本思想是:每一趟(例如第i趟)在后面n-i+1(i=1,2,...,n-1)个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。1. 简单选择排序从上面选择排序的思想中可以很直观地得出简单选择排序算法的思想:假设排序表为L[1...n],第i趟排序队列从L[i...n]中选择关键字最小的元素与L(i)交

2017-07-17 22:52:23 312

原创 数据结构复习-交换排序

1. 冒泡排序冒泡排序算法的基本思想是:假设待排序表长为n,从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们称之为一趟冒泡,结果将最小的元素交换到待排序列的第一个位置。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序列减少一个元素,每趟冒泡的结果把序列中的最小元素放到了序列的最终位置,...,这样最多做n-1趟冒泡就能

2017-07-17 08:10:43 219

原创 数据结构复习-插入排序

插入排序是一种简单直观的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。由插入排序的思想可以引申出三个重要的排序算法:直接插入排序、折半插入排序和希尔插入排序。1. 直接插入排序假设在排序过程中,待排序表L[1...n]在某次排序过程中的某一时刻状态如下:有序序列L(i)L(i)无序

2017-07-16 23:41:58 225

原创 操作系统复习-5.2 I/O核心子系统

5.2.1 I/O子系统概述由于I/O设备种类繁多,功能和传输速率差异巨大,需要多种方法来进行设备控制。这些方法共同组成了操作系统内核的I/O子系统,它将内核的其他方面从繁重的I/O设备管理中解放出来。I/O核心子系统提供的服务主要有:I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理等。5.2.2 I/O调度概念I/O调度就是确定一个好的顺序来执行这些

2017-07-16 16:48:19 787 1

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