- 博客(7)
- 收藏
- 关注
原创 协同过滤
文章内容摘自《推荐系统实践》实现个性化推荐的最理想情况是用户能在注册的时候主动告诉我们他喜欢什么,但这种方法有3个缺点:首先,现在的自然语言理解技术很难理解用户用来描述兴趣的自然语言其次,用户的兴趣是不断变化的,但用户不会不停地更新兴趣描述最后,很多用户并不知道自己喜欢什么,或者很难用语言描述自己喜欢什么基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法成为协
2015-09-24 09:09:18 1386 1
原创 [spark源码剖析]RDD相关源码阅读笔记
RDD相关源码阅读笔记 最好的源码阅读方法就是调试,没有之一之前其实有阅读过RDD相关的源码,最近学习过程中发现在之前原本阅读过的模块中有一些『关节』并没有打通,所以想通过调试的方式来更细致得学习源码。 本文为编写测试用例并调试RDD相关模块的笔记,并没有列出具体的调试过程,仅列出结论以做备忘,特别是那些比较容易忽略或者说是其他blog或者书本中比较少提到的。RDD重要成员及方法依赖RDD共
2015-09-13 07:23:31 851
原创 [Spark源码剖析] Task的调度与执行源码剖析
本文基于Spark 1.3.1,Standalone模式一个Spark Application分为stage级别和task级别的调度,stage级别的调度已经用DAGScheduler划分stage和DAGScheduler提交stage两片文章进行源码层面的说明,本文将从源码层面剖析task是如何被调度和执行的。函数调用流程先给出task调度的总体函数调用流程,并说明每个关键函数是干嘛的。这样一
2015-08-20 06:11:46 1111
原创 [Spark源码剖析] DAGScheduler提交stage
DAGScheduler通过调用submitStage来提交stage,实现如下: private def submitStage(stage: Stage) { val jobId = activeJobForStage(stage) if (jobId.isDefined) { logDebug("submitStage(" + stage + ")")
2015-08-06 08:15:32 1145
原创 [Spark源码剖析] DAGScheduler划分stage
本文基于Spark 1.3.1先上一些stage相关的知识点:DAGScheduler将Job分解成具有前后依赖关系的多个stageDAGScheduler是根据ShuffleDependency划分stage的stage分为ShuffleMapStage和ResultStage;一个Job中包含一个ResultStage及多个ShuffleMapStage一个stage包含多个tasks
2015-08-05 10:36:29 1871
原创 举例说明Spark RDD的分区、依赖
例子如下:scala> val textFileRDD = sc.textFile("/Users/zhuweibin/Downloads/hive_04053f79f32b414a9cf5ab0d4a3c9daf.txt")15/08/03 07:00:08 INFO MemoryStore: ensureFreeSpace(57160) called with curMem=0, maxMem
2015-08-05 09:45:12 1055
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人