数学之路-分布式计算-disco(4)
第一个參数iter是一个迭代器,涉及被map函数产生的键和值。它们是reduce实例。
在本例中。单词随机被托付给不同的reduce实例。然后,要单词同样,处理它的reduce也同样。可确保终于合计是正确的。
第二个參数params与map函数中一致,在此。仅简单使用disco.util.kvgroup()来提取每一个单词统计计数。累计计数,yield(产生)结果。
执行作业
以下開始执行作业。可使用大量參数定制作业,但通常来说。对于简单的任务来说 ,仅使用当中3个就可以。除了启动作业之外,我们还须要输出结果。首先,我们在作业完毕前要等待,通过调用wait等待调用完毕,完毕后会返回结果。为方便起见。通过job对象调用wait及其他相关方法。
result_iterator()函数取结果文件地址列表。它被wait()函数返回,iterates(迭代)遍历全部结果中的键值对。
defmap(line, params):
for word in line.split():
yield word, 1
defreduce(iter, params):
from disco.util import kvgroup
for word, counts in kvgroup(sorted(iter)):
yield word, sum(counts)
if__name__ == '__main__':
job =Job().run(input=["http://discoproject.org/media/text/chekhov.txt"],
map=map,
reduce=reduce)
for word, count inresult_iterator(job.wait(show=True)):
print(word, count)
本博客全部内容是原创,假设转载请注明来源
http://blog.csdn.net/myhaspl/
假设一切妥当。可看到作业执行,输入从tagdata:bigtxt中读入,这个是開始时刻创建的终于打印输出,在job执行时,可打开(或执行disco master的端口)。查看作业的实时进程。
python count_words.py
也可在控制台上查看作业进程,例如以下:
DISCO_EVENTS=1 python count_words.py
正如您所示,创建一个新的迪斯科的工作是相当简单的。你能够在随意数量的方面扩展这个简单的样例。比如,通过使用params对象包含停用词的列表。
假设你把迪斯科分布式文件系统的数据,你能够试试改变输到tag://data:bigtxt。以及加上map_reader =disco.worker.task_io.chain_reader。
你能够试着用sum_combiner(),使job更有效率。
你也能够尝试自己定义功能分区和读取函数,用与map和reduce函数一样的方式编写,然后,你能够试着链接job在一起,以便之前的job输出成为下一个的输入。
disco是设计得尽可能的简单,这样你就能够专注于你自己的问题,而不是框架。
数学之路-分布式计算-disco(4)的更多相关文章
- 数学之路-分布式计算-linux/unix技术基础(4)
pwd显示当前文件夹,ls查看文件夹下的文件,cd 进入文件夹 -bash-4.2$ pwd /home/myhaspl-bash-4.2$ lsabc hadoop-2.4.1 ...
- 数学之路-分布式计算-storm(3)
.安装zookeeper 本博客全部内容是原创.假设转载请注明来源 http://blog.csdn.net/myhaspl/ myhaspl@aaayun:~/jzmq-master$cd .. m ...
- 数学之路(3)-机器学习(3)-机器学习算法-SVM[5]
svm小结 1.超平面 两种颜色的点分别代表两个类别,红颜色的线表示一个可行的超平面.在进行分类的时候,我们将数据点 x 代入 f(x) 中,如果得到的结果小于 0 ,则赋予其类别 -1 ,如果 ...
- 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波
拉普拉斯算子进行二维卷积计算,线性锐化滤波 # -*- coding: utf-8 -*- #线性锐化滤波-拉普拉斯算子进行二维卷积计算 #code:myhaspl@myhaspl.com impor ...
- 数学之路(3)-机器学习(3)-机器学习算法-PCA
PCA 主成分分析(Principal components analysis,PCA),维基百科给出一个较容易理解的定义:“PCA是一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的 ...
- 数学之路-python计算实战(13)-机器视觉-图像增强
指数变换的基本表达式为:y=bc(x-a)-1 当中參数b.c控制曲线的变换形状,參数a控制曲线的位置. 指数变换的作用是扩展图像的高灰度级.压缩低灰度级.能够用于亮度过高的图像 本博客全部内容是原创 ...
- 数学之路(3)-机器学习(3)-机器学习算法-SVM[7]
SVM是新近出现的强大的数据挖掘工具,它在文本分类.手写文字识别.图像分类.生物序列分析等实际应用中表现出非常好的性能.SVM属于监督学习算法,样本以属性向量的形式提供,所以输入空间是Rn的子集. 图 ...
- 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)
# -*- coding: utf-8 -*- #code:myhaspl@myhaspl.com #邻域平均法滤波,半径为2 import cv2 import numpy as np fn=&qu ...
- 数学之路(3)-机器学习(3)-机器学习算法-SVM[9]
我们应用SVM的非线性分类功能对手写数字进行识别,我们在这应用poly做为非线性核 svm = mlpy.LibSvm(svm_type='c_svc', kernel_type='poly',gam ...
随机推荐
- js中的prototye
前言 没事的时候写着js完,一般可能大家都知道这个属性吧,但是我还要说说,给一些不知道的人看看吧, 希望对你有帮助. 过程 以前在学c#的时候,老师最多用的就是Person这个类来开讲,我觉得是这个更 ...
- 浏览器阻止window.open的解决方案
先分析一下浏览器为什么会阻止window.open吧:用户主动去触发事件的浏览器不会阻止,什么是用户主动触发的呢?就是当用户去点击的一瞬间就弹出这种浏览器是不会阻止的,如果是通过setTimeout定 ...
- linux自定义开机启动服务
转 http://www.cnblogs.com/jimeper/archive/2013/03/12/2955687.html 手工创建服务 1.在/etc/rc.d/init.d目录下创建shel ...
- Spring MVC和Struts2的区别
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能:spring会稍微比struts快.spring mvc是基于方法的设 ...
- nutch-1.7-二次开发-Content中增加编码
1 识别nutch-1.7的编码,完成 以前1.2是在 org.apache.nutch.parse.html.HtmlParser EncodingDetector detector = new E ...
- 【poi】解决java导出excel 海量数据内存溢出问题
转自百度经验:http://jingyan.baidu.com/article/4853e1e5202c331909f72627.html 那里排版忒恶心,转来这里. 由于项目中有导出海量数据的需求, ...
- Servo: The Embeddable Browser Engine
Embedding, in the context of this article, is the process of hosting a web rendering engine inside a ...
- German Collegiate Programming Contest 2013:B
一个离散化的简单题: 我用的是STL来做的离散化: 好久没写离散化了,纪念一下! 代码: #include<cstdio> #include<cstring> #include ...
- Codeforces Round #131 (Div. 2) : B
首先能被2,5整除的数结尾必须是0: 如果没有0肯定不行: 然后判断他们的和ans%3: 如果==0,直接从大到小输出就行: 如果==1,要么删除它们之间最小的那个%3==1的,要么删除两个小的并且% ...
- QT获得所有系统环境变量(包括Linux和MAC的信息)
系统环境变量还是挺重要的,除了QStandardPaths(感觉都是文档类型的变量,QT4使用QDesktopServices),更有QProcessEnvironment(都是真正的系统变量): Q ...