自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunhaoning的专栏

技术杂谈

  • 博客(32)
  • 资源 (17)
  • 收藏
  • 关注

原创 SparkContext的初始化机制

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

2017-07-30 21:45:10 352

原创 xargs命令详解

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

2017-07-28 23:37:22 895

转载 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 313

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

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

2017-07-26 13:59:10 285

原创 Scala学习—类型参数

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

2017-07-26 13:20:24 227

原创 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 737

原创 数据结构复习—队列

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

2017-07-25 21:20:23 799

原创 数据结构复习—栈

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

2017-07-25 16:07:28 456

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

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

2017-07-24 23:35:31 422

原创 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 559

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

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

2017-07-23 10:10:23 350

原创 Scala学习—函数式编程

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

2017-07-23 09:29:51 250

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

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

2017-07-22 20:49:20 207

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

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

2017-07-22 15:03:18 196

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

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

2017-07-21 22:21:01 243

原创 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 294 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 194

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

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

2017-07-21 09:30:30 184

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

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

2017-07-20 23:35:19 311

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

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

2017-07-20 23:31:28 423

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

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

2017-07-17 23:32:45 381

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

选择排序的基本思想是:每一趟(例如第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 671

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

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

2017-07-17 08:10:43 338

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

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

2017-07-16 23:41:58 386

原创 操作系统复习-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 1204 1

原创 操作系统复习-5.1 I/O管理概述

5.1.1 I/O设备计算机系统中的I/O设备按使用特性可分为以下类型:1)人机交互类外部设备: 用于与计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘灯。这类设备数据交换速度相对较慢,通常以字节为单位进行数据交换的。2)存储设备: 用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。3)网络通信设备: 

2017-07-14 15:02:50 644

原创 操作系统复习-4.3 磁盘组织与管理

4.3.1 磁盘的结构磁盘(Disk)是由表面涂有磁性物质的金属或塑料构成的圆形盘片,通常一个称为磁头的导体线圈从磁盘中存取数据。在读/写操作期间,磁头固定,磁盘在下面高速旋转。磁盘的盘面上的数据存储在一组同心圆中,称为磁道。每个磁道与磁头一样宽,一个盘面上有上千个磁道。磁道又划分为几百个扇区,每个扇区固定存储大小(通常为512B),一个扇区称为一个盘块。相邻磁道及相邻扇区间通过一定的间隙

2017-07-13 10:06:05 1092

原创 操作系统复习-4.2文件系统实现

4.2.1 文件系统层次结构1. 用户调用接口文件系统为用户提供与文件及目录有关的调用,如新建、打开、读写、关闭、删除文件,建立、删除目录等。此层由若干程序模块组成,每一模块对应一条系统调用,用户发出系统调用时,控制即转入相应的模块。2.文件目录系统文件目录系统的主要功能是管理文件目录,其任务有管理活跃文件目录表、管理读写状态信息表、管理用户进程的打开文件表、管理与

2017-07-12 23:14:38 910

转载 TensorFlow报错:input_data.py only integer scalar arrays can be converted to a scalar

TensorFlow 教程第一个例子下载数据报错了。国外找到的解决方法:you can modify the function:def _read32(bytestream): dt = numpy.dtype(numpy.uint32).newbyteorder('>') return numpy.frombuffer(bytestream.read(4),

2017-07-12 14:45:25 2940

原创 操作系统复习-4.1 文件系统基础

4.1.1 文件的概念1. 文件的定义文件是操作系统中的一个重要概念。文件是以计算机硬盘位载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序,等等。在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。大多数应用程序的输入都是通过文件来实现的,其输出也都是保存在文件中,以便信息的长期存储及将来的访问。当用户将文件用于应用

2017-07-10 09:53:25 1282

原创 操作系统复习-3.2覆盖与交换

3.2.1 虚拟内存的基本概念1. 传统存储管理方式的特征  1) 一次性:作业必须一次性全部装入内存,方能开始运行。这会导致两种情况发生:①当作业很大,不能全部装入内存时,将使该作业无法运行;②当大量作业要求运行时,由于内存不足以容纳所有作业,只能使少数作业先运行,导致多道程序的度下降。  2) 驻留性:作业被装入内存后,就一直驻留在内存中,其任何部分都不会被换出,直至作业运

2017-07-07 09:58:01 1944

原创 操作系统复习-3.1内存管理概念

3.1.1 内存管理的概念内存管理的功能有:1)内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理。2)地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。3)内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。4)存储保护:保证各道作业在各自的存

2017-07-03 21:11:12 1140

ikanalyzer-solr6.zip

solr可自己配置分词器,压缩包内为solr6使用的ik分词jar包及相关文件

2018-02-08

hadoop2.6.4 winutils

hadoop2.6.4 winutils

2016-11-06

数据挖掘:概念与技术(中文第三版)

《数据挖掘:概念与技术》是数据挖掘和知识发现领域内的所有教师、研究人员、开发人员和用户都必读的参考书,是一本适用于数据分析、数据挖掘和知识发现课程的优秀教材。

2016-04-08

数据结构C++语言描述

数据结构基于C++语言,熟悉C++语言后非常基础有价值的学习资料

2014-01-28

你必须知道的495个C语言问题

c语言需要注意的基础地方,非常适合初学者

2014-01-24

C++程序员面试宝典

各大IT公司曾经的面试题和一些关于C++经常面试的基础知识

2014-01-23

Windows窗体程序设计

关于c++的Windows窗体程序设计编程

2014-01-22

java计算器

用java做的计算器,实现了加、减、乘、除、开方、取反运算,并可进行一串计算式的计算。可供初学者学习~

2013-12-31

哈夫曼编码

该程序可以构造哈夫曼树,进行哈夫曼编码、译码。

2013-12-28

《Java程序设计实用教程(第3版)》例题

包含《Java程序设计实用教程(第三版)》的所有实例源码,非常适合初学者学习,分享给大家

2013-12-27

个人财务管理系统

用来练习三层架构的小例子,包含源码,数据库和工程演示

2013-12-27

成绩管理系统

一个简单的成绩管理系统,关于C#连接数据库的应用

2013-12-25

简单的计算器实现

一个简单的windows应用,包含源码和setup文件

2013-12-05

随机数生成器源码

包含随机数生成器的源码和打包好的软件,可以生成设定区间的任意个随机数

2013-11-14

随机数生成器

一个随机数生成器,可以生成任意个不同的随机数

2013-11-09

jdk api1.7.chm

学习java必备的api文档,为大家学习java提供方便

2013-09-24

空空如也

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

TA关注的人

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