- 博客(77)
- 收藏
- 关注
原创 python+linux后续
之前本来一直想利用PyCharm+Spark+Python的环境,千辛万苦好像可以正常运行Spark应用程序了,但是临门一脚,居然出现编码的问题,能力有限,实在搞不定了,只能在Linux下搞了,好吧,Linux的Hadoop和Spark环境以及配置成功,现在就只差pyspark的配置了,其实很简单,就是在/etc/profile文件里面添加下面一行命令:export PYTHONPATH=$S
2016-06-07 16:59:53 1066
原创 MathType+Originlab的有用知识
最近,一直忙着搞毕业论文,都好几个月没管博客,刚打开博客一看,哇,可以啊,阅读量有了“质的飞跃”。。。哈哈。毕业论文真是一件令人心酸+头疼+苦尽甘来的事情,我想这会是我一辈子写的字数最多的一篇“文章”了吧。。。这次毕业论文画图采用的是Originlab,公式编辑器采用的是MathType,刚开始用了R语言画图,但感觉看起来不够美观,于是就放弃了。。。个人觉得这两个软件用处挺多的,很多东西我也只是懂
2016-05-23 17:33:11 2426
原创 Windows7+Pycharm搭建Spark的开发环境
一般,我都会在Eclipse中安装Scala插件,用Scala语言编写Spark程序,之后将程序导出为JAR文件,再复制到Spark平台上运行,因为XX原因,现在想尝试用python写Spark程序,于是在Windows+Pycharm的环境下搭建了相应的开发环境首先,安装py4j(虽然其实我并不知道这是个什么东东,但是,因为没有安装它搞得一直出问题,所以啊。。。谨慎。。)本来我最开始是打
2016-03-30 19:23:00 9035 1
原创 天气:阴
本来不应该在博客里面传播这种负能量的消息,但还是想将自己的心情记录下来。。。 回家已经22天了,过得始终不是那么开心,在学校的时候总是想着:这是最后一个假期了,我一定要好好珍惜,好好陪妈妈,以后可能就没有这么长的假期了,可是不知道是自己太过重视还是自己本性如此,回家看到那两个小娃娃,心情就是好不起来,我想这里面终究是有两个原因吧,第一自己控制情绪的能力太弱了,第二成长环境的影响,第
2016-01-22 10:12:09 448
原创 平安夜
平安夜好像原本也不关我什么事情,但是看着学校热闹的气氛,我也就凑凑了,平安夜平平安安。。。这两天的状态有点糟糕啊,一个是因为心情原因,还有一个就是没有睡好。。。要及时调整过来了。。。
2015-12-24 17:34:55 455
原创 废话一二
有一周的时间没有写博客了,忽然觉得自己的博客内容好low啊,嘻嘻,但不管怎样也是自己的切身体会,且如若能帮助他人一二,那就更好啦。。。去了珠海几天,感觉珠海好漂亮,真的特别适合居住,我对这种临海城市向来没有什么抵抗力,如果自己将来能在珠海定居,那也是很棒的选择。。。快要毕业啦,这段时间一直在搞毕设的事情,调研论文,做实验,哎。。。这段时间估计是我看论文看的最多的一次,但不管
2015-12-16 17:42:05 447
原创 实习整理(十七)
手里有几套腾讯实习生和校园招聘的笔试题,把它贴出来,当然这个试题貌似对于基础研究岗位的同学不太合适,因为腾讯基础研究岗位的题目大都是和数理统计相关的。。。码字很辛苦啊,偷点懒就贴图了。。。腾讯2012年实习生笔试题目由于篇幅有限,答案明天再贴。。。未完待续。。。
2015-12-03 17:55:49 444
原创 实习整理(十六)
感觉关于实习准备的这部分已经写得差不多了,没有啥可写的了,写下卡特兰数吧,这个在笔试中也有涉及到。。。定理:n个+1和n个-1构成的2n项,其部分和满足大于等于0的数列其个数则为第n个卡特兰数卡塔兰数的一般项公式为 :总结了一下,最典型的四类应用:1.括号化问题矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有
2015-12-03 17:49:52 483
原创 实习整理(十五)
上篇博文讲到了链表的相关操作,接下来讲讲有关树的相关知识,毕竟链表和树是笔试,面试的重点,这里只讲几种类型树的基本概念而已。。。二叉查找树(B树)查找树的定义非常简单,一句话就是左孩子比父节点小,右孩子比父节点大,还有一个特性就是”中序遍历“可以让结点有序。非常适合于范围查找。时间复杂度O(log(N)),在最坏的情况下会出现“链表”的形式,复杂度退化到O(N)
2015-12-01 17:20:40 479
原创 实习整理(十四)
前面一篇博文简要地讲了下我在笔试准备过程中碰到过的有关字符串的题目,现在再提下有关链表的题目做有关链表的题目最好画图,这样有助于理解1、单向链表逆序2、有序链表合并3、双向链表删除结点4、寻找链表中间结点5、判断一个链表是否有环1、单向链表逆序(1) 具有链表头的单链表student *reve
2015-11-26 17:45:30 376
原创 实习整理(十三)
7、假设A=1,B=2,C=3...AA=27,AB=28...AAA=xxx(表示某个数字),写一个函数统计一个字符串的值是多少。思路:其实就是26进制转换。PS:这道题貌似腾讯笔试出现过int strToInt( const char *str ){ int sum = 0; while( *str != '\0')
2015-11-24 17:58:00 385
原创 实习整理(十二)
关于实习笔试,面试这部分感觉都写得差不多了,剩下一些零零碎碎的知识,还是继续写上吧。。。关于字符串处理:1、字符串反转reverse2、字符串复制memcpy3、内存复制memcpy4、字符串长度strlen5、字符串连接strcat6、字符串比较strcmp7、字符串转整数atoi 8、字符串元音字符个数9、字符串
2015-11-23 17:47:20 465
原创 实习整理(十一)
6.最长公共子序列和最长公共子串都可以用动态规划的方法来解决,递归的方式如下:最长公共子序列 L[i][j] = (s[i]==t[j]) ? L[i-1][j-1] + 1:max(L[i-1][j],L[i][j-1]) L[i][j] ---- 子序列X1...Xi和子序列Y1...Yj的最长公共子序列的长度 数组下标从1开始 ,如果下标从0开始,就类似于下面这样
2015-11-20 17:34:59 461
原创 实习整理(十)
实习期间整理了一些自己觉得比较有意思的算法题,纯属个人意见。。。程序 = 数据结构 + 算法这一点现在是深深地体会到了,感觉很多问题算法很重要,但是如果你采用了合适的数据结构,就可以使问题简化位图:大数据时进行排序,去重,查找重复的整数等等哈希表:大数据时进行排序,查找重复的整数等等字典树:一般用来处理大量字符串了在求解的过程中可以发现哈希是一个很有用的数据结构
2015-11-18 17:42:36 444
原创 实习整理(九)
10.内存管理中的 LRU 方法是用来管理什么的?()A. 虚拟内存的分配 B. 虚拟内存的释放 C. 物理内存的分配 D. 物理内存的释放答案:AD解析:操作系统的知识11.解决类似于从数组中选择k个最小(大)的数的问题:快速排序,堆排序12.输出结果b,c分别是什么答案:求sizeof的问题可以查看我之前写的实习整理系列的博文13、给
2015-11-17 17:52:51 451
原创 实习整理(八)
部分题目的答案和解析参考网上的资料和师兄们的答案,不保证百分之百正确,如果有错误,希望各位“博友”积极指正。。。1.void func(char str[50]) { printf("A %d B %d ",sizeof(str),strlen(str)); //因为传递的是指针,所以str的sizeof结果为4(假设为
2015-11-16 17:46:08 444
原创 实习整理(七)
43.int a=2; int & b=a;//正确 int & c=2;//错误 const int & d=2;//正确44.a++只能作为右值,++a既可以作为左值,也可以作为右值,++a的效率比a++高45.n位的二进制有符号整数的取值范围:-2^(n-1)~2^(n-1)-1 无符号整数:0~2^n-146.按位与 &
2015-11-12 17:41:57 394
原创 实习整理(六)
csdn的编辑器再次让我无语,已无力吐槽。。。36.C++中无论类是通过子类还是自身进行声明,都是先调用自身的构造函数,再调用子类的构造函数,释放时如果自身的析构函数不为虚函数,则只调用自身的析构函数,否则先调用子类的析构函数再调用类本身的析构函数,其余的成员函数就看它是用自身进行声明还是利用子类进行声明,不过若显示指定了调用哪个类的成员函数那就调用相应类的成员函数,形式为 类::函数
2015-11-11 17:26:20 390
原创 实习整理(五)
18.C++中模板声明有如下两种方式:template template19.堆排序删除堆顶元素:交换堆顶元素和最后一个元素,之后调整堆,记住调整堆不再是从len/2开始了,而是从堆顶,即第一个元素开始了20.涉及大量字符串的查找或者排序,就建立Trie树(字典树); 查找数组中前k个数,就使用快速排序和堆排序; 类似于使得大写字母排在前面,小写字母排在后面的,就
2015-11-10 17:29:53 412
原创 实习整理(四)
10.Linux中最常用的命令http://www.codeceo.com/article/10-linux-command-every-programmer-must-know.html11.线性表采用数组存储----顺序表,采用链式存储----链表存储密度:顺序表>链表存储空间:链表>顺序表顺序表要求逻辑地址相邻,物理地址也要相邻;链表要求逻辑地址相邻,物理地址不一
2015-11-09 17:38:47 409
原创 实习整理(三)
5.C++中移位运算符(>)的优先级高于逻辑运算符(&&,||,^) 有符号数要向无符号数转换运算符的结合方向:http://wenku.baidu.com/view/cf35452b2af90242a895e547.html6.static 静态修饰符,在许多编程语言中都出现过,它可以用来修饰变量和函数,修饰的变量和函数存放在内存的静态区,即在程序编译的时候就会为其分配一块内存,该内存只有在
2015-11-06 11:43:39 362
原创 实习整理(二)
先写下自己在准备过程中所整理的资料,当然,这些资料不一定对于每个人都有用,只是自己碰到了而已,写得有问题的请随时提出,以便改正。。。1.C++中求字符串长度的函数为: string s; s.length();2.C++中指针和数组的关系 以字符数组为例,字符数组实质上就是字符串,可以用字符串直接赋值 char s
2015-11-04 17:33:12 509
原创 实习整理(一)
找实习,找工作,今年就忙了这两件事,过程比较揪心,但庆幸结果还是比较满意的。。。找实习的时候由于从来没有过类似的经验,其实浪费了很多机会,特别是面阿里的时候,面试官已经给了提醒,可是自己却是后知后觉,”失败乃成功之母“,这句话说得还是挺对的,每次笔试或者面试挂掉之后,都能从整个过程中发现自己诸多不足,吸取教训之后,就变得越来越顺利了。。。周边的同学找实习或者找工作的时候都是各种刷题
2015-11-03 17:53:55 511
原创 机器学习理解(六)
9.AdaBoost分类器----有监督学习AdaBoost也是一种分类算法,它是一种迭代算法,通过训练多个弱分类器,来得到强分类器,利用最终的强分类器来对数据进行分类,它的基本步骤为:1.赋予每个训练样本相同的权重,训练第一个弱分类器,此时个样本的权重为1/N(N为样本总数),将弱分类器得到的各样本的分类结果与其真实结果进行比较,分类错误的各样本的权重之和即为a,利用如下公式得到第一个弱
2015-11-02 17:43:44 655
原创 机器学习理解(五)
7.Apriori算法---无监督学习Apriori算法是关联规则挖掘算法中用的比较早的算法,事物和事物之间通常存在一定的联系,关联规则挖掘的目的就在于从在大量的数据项中发现隐藏着的联系或者相关性,揭示数据项间的依赖关系,如用户去超市购买啤酒的同时也会选择购买花生,那么啤酒和花生之间就形成了一定的关联关系Apriori算法的基本步骤如下:1.生成1-项候选项集;2.生成1-项频繁项
2015-10-30 17:25:57 563
原创 机器学习理解(四)
5.KNN分类---有监督学习KNN即K近邻分类,它的基本思想就是找到与待分类样本最近的K个样本,在这K个样本中,哪个类别所包含的样本数最多,则待分类样本就属于哪一类基本步骤:1.分别求得待分类样本与训练样本的距离;距离的求法有欧式距离,马氏距离等,且分类样本是用向量进行表示的,分类样本的属性个数即为向量的维度2.对距离进行排序;3.选取距离值最小的K个样本;4.K个样本进
2015-10-29 17:32:31 911
原创 机器学习理解(三)
今天插播下逻辑线性回归的一些知识,其实之前对这部分的内容还未太在意,后来实习以及找工作的过程中都碰到这个问题,就写下吧。。在这之前先扯点其他的。。当正负样本不均衡时,可以采取样本重构的方法,如重采样,在正样本及其K邻近范围之内的样本之间线性插值(y = y0 + α(y1 - y0),x=x0+α(x1 - x0),α=(x-x0)/(x1-x0)),得到新的样本,这样正样本数就会
2015-10-28 18:47:58 550
原创 机器学习理解(二)
3.神经网络分类器----有监督学习神经网络就是模仿人类大脑神经元工作方式的一种机器学习方法,同时它也是深度学习中的一个比较热门的知识点神经网络总共分为三层:输入层,隐藏层,输出层,每一层都是由若干个神经单元组成的输入层:事件有几个属性,该层就有几个神经元,即每一个属性对应一个神经元,神经元即为每个结点,结点的值即为相应属性的值输出层:有几个分类该层就有几个神经元,即每一个分类
2015-10-27 17:48:03 475
原创 机器学习理解(一)
Spark这部分写完了,忽然发现自己没什么可写的了。。。还是把机器学习这部分写下,虽然有关机器学习的博客有很多,而且有的博客写的真的很好,但还是想将自己在学习机器学习时的一个理解记录下来,可能存在许多不足,因此如果有了新的理解,我会进行更新,当然,更加希望的是能借助之后在工作中的一些经验来逐步完善这方面的知识。。1.分类决策树---有监督学习分类决策树是一棵自上而下的树,用来进行预测,分支
2015-10-26 17:47:44 569
原创 Spark---ending
哈哈。。。终于把Spark这部分的源码写完了,讲得这几个部分中当然会有很多不足或者说不正确的地方,因此希望各位网友积极指正。。。学习Spark纯属个人兴趣爱好,学习的过程中也是很枯燥的,特别是在阅读源码的过程中,同时因为Spark刚刚兴起,关于Spark的书籍,资料并不是很齐全,因此在学习的过程中碰到问题就只能从网上寻找帮助了,不过,整个过程我还是收获颇多,至少,在以后的学习过程中我可以保持踏实,
2015-10-23 17:23:40 467
原创 (九)Spark应用程序在不同部署模式下的运行方式
我们知道Spark可以运行在不同模式下,这样的话当我们提交程序给Spark集群时就要修改相应的参数设置,在Spark学习的最后,我总结了几种常用模式下的运行命令(在Linux下运行) PS:下文提到过的jar包是这样来的,我是在Windows下的eclipse中用scala语言编写的程序,所以我把程序导出为一个jar包,之后再传到Linux中相应的目录下yarn模式:./bin/spar
2015-10-16 17:41:12 1062
原创 (八)Spark源码理解之DAGScheduler---part3
讲讲自己对于ShuffleMapTask和ResultTask的区别 简单来说两者都是Task类的子类,不同的是操作类型,前者的操作类型是MapStaus类,是在shuffle map stage生成的,后者的操作类型是数据,是在final stage生成的,多说一句,所谓的Spark基于内存存储中间数据应该就是存储MapStatus(分区的映射状态),鉴于它们都是Task类的子类,因此
2015-10-15 17:39:36 502
原创 (八)Spark源码理解之DAGScheduler---part2
承接上篇博文所述,接下来我对getShuffleMapStage以及newStage这两个方法的代码进行主要的介绍getShuffleMapStage:该方法主要是通过调用newOrUsedStage生成stageprivate def getShuffleMapStage(shuffleDep: ShuffleDependency[_,_], jobId: Int): Stage =
2015-10-14 17:39:51 451
原创 (八)Spark源码理解之DAGScheduler---part1
DAGScheduler是Spark中另一比较重要的部分,它属于高级调度,主要实现stage的划分,接着生成整个DAG图,以及如何为每个stage生成任务集,并且将任务集提交给TaskScheduler,基于这两点我将对DAGScheduler的源码展开阅读,下图是DAGScheduler的简单构成图:在讲述DAGScheduler之前,先介绍DAGScheduler中几个重要的变
2015-10-13 17:48:17 550
原创 (七)Spark源码理解之TaskScheduler----part6
恩。。。。由于最近这段时间都在实习以及找工作,因此就将博客给落下了,现在继续将spark的部分"搬上"。。PS:虽然我自己也忘得差不多了。。4.ExecutorExecutor类完成任务的装载,任务的运行等功能,它有个变量为ExecutorSource对象,这个对象主要实现注册executor的各项资源,在此省略不讲,此外Executor类有个核心方法launchTask(),该方
2015-10-12 17:35:34 554
原创 (七)Spark源码理解之TaskScheduler----part5
3.4 SchedulerBackend的不同实现方式Spark的部署模式不同决定了其资源管理方法也会有所不同,即SchedulerBackend也会有不同的实现方式,首先介绍SchedulerBackend的两种主要的实现方式或者说子类。3.4.1 LocalBackendLocalBackend属于本地模式下的调度后台支撑服务,所谓本地模式我理解为只有一个executor,exec
2015-04-24 17:27:18 686
原创 (七)Spark源码理解之TaskScheduler----part4
resourceOffers():该方法是TaskSchedulerImpl的核心所在,实现将任务指定给对应的从节点中的executor,其主要思路可以概述为:首先将获取的每个executor的资源,组成组成WorkerOffer序列,然后将其打乱,接着对每个任务集进行操作,首先判断第一个executor,如果它的CPU个数符合任务集中的任务所需,则将该任务集中挂在该executor下的任务取
2015-04-20 17:52:11 489
原创 (七)Spark源码理解之TaskScheduler----part3
3.TaskSchedulerImpl具体实现TaskScheduler,是TaskScheduler的子类,也是整个任务实现过程的核心,在对这部分讲述之前介绍几个比较重要的变量:taskIdToTaskSetId:HashMap容器,key值为task的Id,value值为TaskSet的Id;taskIdToExecutorId:HashMap容器,key值为task的Id,val
2015-04-16 18:01:04 449
原创 (七)Spark源码理解之TaskScheduler----part2
2. TaskSetManagerTaskSetManager任务集管理器,负责管理为stage生成的任务集,是任务调度中比较重要的一个部分,包括如何查找任务,对TaskSchedulerImpl的任务分配做出回应,它有几个重要的变量:pendingTasksForExecutor---在一个executor上执行的任务,用HashMap存储,key值为executor的id,value为
2015-04-15 17:50:07 411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人