数学之路-分布式计算-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 ...
随机推荐
- windows下使用cxfreeze打包python3程序
1:下载适合版本的cxfreeze http://sourceforge.net/projects/cx-freeze/files/4.3.2/ 2:安装,注意python版本是否正确 3:安装完成后 ...
- Mac下修改Mysql密码
1. 停止Mysql 2. cd /usr/local/mysql/bin/ 3. 使用跳过权限方式启动mysql sudo ./mysqld_safe --skip-grant-tables &am ...
- webStorm中的混乱代码格式化
Mac上 command + alt + l windows上 control + alt + l
- [Kinect]XBox One Kinect连接Windows
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) XBox One带体感套装去年就买了,昨天京东349元入了个适配器,下午就送到了,开箱. ...
- android学习小例子——验证码倒计时按钮
1.activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...
- nutch 1.7 修改代码后如何编译发布,并集群采集攻略
nutch 1.3之后,分布式的可执行文件与单机可执行文件进行了分离 接上篇,nutch 1.7 导入 eclipse 本篇所要解决的问题:nutch下载下来经过简单的配置即可进行采集,但有时候我们需 ...
- Codeforces Round #205 (Div. 2) : A
题意: 要求找到最少次数的交换次数使得两组数都是偶数: 很明显答案要么是0,要么是1,或者不管怎么交换都不行(-1): 所以: #include<cstdio> #define maxn ...
- 用F340 GPIO做I2C
在和Qinheng开发小尺寸点灯治具中,F340和FPGA采用I2C通信,其中F340作为I2C的主机,I2C端口用自己的GPIO编写,总结遇到的问题及注意事项: 1. F340端口及上拉电阻设置: ...
- Android SectionIndexer 的使用(联系人分类索引)
// 获取标题栏索引 int position = sectionIndexter.getPositionForSection(l[idx]); ) { return true; } // 设置调整到 ...
- VARCHAR2字段关联
SQL> create table a1(id int,name varchar2(10)); Table created. SQL> create table a2(id int,nam ...