第一个參数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)相关推荐

  1. 数学之路(2)-数据分析-R基础(3)

    本博客所有内容是原创,未经书面许可,严禁任何形式的转载. http://blog.csdn.net/u010255642 五.在R中创建的产生的这些单元为物件(对象集),这些物件可以是变量.数字数组. ...

  2. 与曾宪寿共探中医应用属性数学之路一(作者:赵致生)

    http://www.zhongyiyao.net/blog/space.php?uid=21969&do=blog&id=2255 感谢曾宪寿老弟来探索中医如何应用数学问题.这个问题 ...

  3. 数学之路(3)-机器学习(3)-机器学习算法-神经网络[17]

    神经网络既然可以进行函数拟合,也可以进行数据拟合,将输入x做为函数的自变量,将要输出的数据y做为函数f(x)的输出. y=f(x),我们将x送入神经网络做为输入,然后将y做为目标训练值,我们下面进行一 ...

  4. 直线矩阵数学之路(2)-四大神器-R(18)

    最近研究直线矩阵,稍微总结一下,以后继续补充: 目标是这些点到这条直线的距离的平方和最小,可运用最小二乘法,最小二乘法拟合的进程就是回归,这条直线就是回归线. Lsfit()函数实现最小二乘法拟合,其 ...

  5. 数学之路(3)-机器学习(3)-机器学习算法-神经网络[19]

    我们也可以尝试用多层感知器网络对一组数据建立模型,在输入与输出数据之间建立非线性关系,用神经网络拟合输出数据,训练好后,输入其它值,能得到一个较精确的仿真输出数据 下面是钢包使用次数与容积实测数据 钢 ...

  6. 数学之路(2)-数据分析-R基础(5)

    本博客所有内容是原创,未经书面许可,严禁任何形式的转载. http://blog.csdn.net/u010255642 > x [1]   11   22 3388 > y [1]   ...

  7. 数学之路(2)-数据分析-R基础(4)

    本博客所有内容是原创,未经书面许可,严禁任何形式的转载. http://blog.csdn.net/u010255642 向量的使用可简单使用"c"后跟括号将向量包围起来,即c() ...

  8. 数学之路(2)-数据分析-R基础(2)

    四.从文件中载入并执行代码以及将执行结果写入文件中 1.使用source函数载入并执行代码,我们把以下代码放在一个名为test.r的文件,用文本编辑工具录入以下代码 [plain] view plai ...

  9. 数学之路(2)-数据分析-R基础(1)

    数据分析是一个复杂的系统,好的工具能有事半功倍的效果,我们先使用R做为分析 工具. R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和 ...

最新文章

  1. flask_sqlalchemy连接Mysql报TypeError: create_engine() got an unexpected keyword argument 'encoding'解决办法
  2. python常用函数-python常用魔法函数
  3. DOS内核学习 - DOS专用中断
  4. 计算机专业技能知识,2017年度计算机专业技能知识资料基础知识资料试题'及其答案...
  5. 逻辑卷、物理卷、卷组相关操作
  6. ElasticSearch技术文档
  7. perl 处理文件路径的一些模块
  8. css 浮动问题 display显示 和 光标设置cursor
  9. BZOJ_1798__Codevs_2216_[AHOI_2009]_行星序列_(线段树)
  10. io python 读取pdf_Python读取PDF文件--pdfminer
  11. 1个模型横扫40+个SOTA!22位华人共同打造佛罗伦萨模型,一统图像视频文本,含9亿图像-文本对...
  12. 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
  13. 2018 蓝桥杯省赛 B 组模拟赛(五)题 B题
  14. VS 2010 快捷键
  15. 计算机忘记网络,忘记密码后如何查看电脑无线网络密码
  16. 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
  17. 4.实操(Credit Card Fraud Detection)
  18. python京东注册机_Python实现京东自动登录
  19. 导购提成怎么算_导购提成应该怎么算?
  20. 简单的python截屏工具

热门文章

  1. plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来
  2. 136. 只出现一次的数字 golang
  3. Linux_linux基础命令(增删查,权限,Linux下的重要目录,重要命令(. du, df, top, free, pstack, su, sudo).安装gcc/g++, gdb, vim )
  4. 洛谷P1080-国王游戏-贪心+高精度
  5. vivado软件如何查看内部器件的仿真信号
  6. Codeforces 408D Long Path (DP)
  7. QZEZ第一届“饭吉圆”杯程序设计竞赛
  8. is 和 == 的区别
  9. Python程序互斥体
  10. Java DES 加解密(DES/CBC/PKCS5Padding)