这是CS100.1x第一个提交的作业,是给我们测试用的。相关ipynb文件见我github。本来没什么好说的。我在这里简单讲一下,后面会更详细的讲解。主要分成5个部分。

Part 1: Test Spark functionality

Parallelize, filter, and reduce

  1. # Check that Spark is working
  2. largeRange = sc.parallelize(xrange(100000))
  3. reduceTest = largeRange.reduce(lambda a, b: a + b)
  4. filterReduceTest = largeRange.filter(lambda x: x % 7 == 0).sum()
  5. print reduceTest
  6. print filterReduceTest
  7. # If the Spark jobs don't work properly these will raise an AssertionError
  8. assert reduceTest == 4999950000
  9. assert filterReduceTest == 714264285

前三行代码的作用分别是,把一个python的集合转化为RDD,把列表里的值相加,把列表里对7整除的数相加

Loading a text file

  1. # Check loading data with sc.textFile
  2. import os.path
  3. baseDir = os.path.join('data')
  4. inputPath = os.path.join('cs100', 'lab1', 'shakespeare.txt')
  5. fileName = os.path.join(baseDir, inputPath)
  6. rawData = sc.textFile(fileName)
  7. shakespeareCount = rawData.count()
  8. print shakespeareCount
  9. # If the text file didn't load properly an AssertionError will be raised
  10. assert shakespeareCount == 122395

这段代码第一段是构造文件路径,第二段是读取文本文件,然后统计行数。

Part 2: Check class testing library

Compare with hash

  1. # TEST Compare with hash (2a)
  2. # Check our testing library/package
  3. # This should print '1 test passed.' on two lines
  4. from test_helper import Test
  5. twelve = 12
  6. Test.assertEquals(twelve, 12, 'twelve should equal 12')
  7. Test.assertEqualsHashed(twelve, '7b52009b64fd0a2a49e6d8a939753077792b0554',
  8. 'twelve, once hashed, should equal the hashed value of 12')

测试哈希比较,没什么好说的

Compare lists

  1. # TEST Compare lists (2b)
  2. # This should print '1 test passed.'
  3. unsortedList = [(5, 'b'), (5, 'a'), (4, 'c'), (3, 'a')]
  4. Test.assertEquals(sorted(unsortedList), [(3, 'a'), (4, 'c'), (5, 'a'), (5, 'b')],
  5. 'unsortedList does not sort properly')

排序的操作

Part 3: Check plotting

Our first plot

  1. # Check matplotlib plotting
  2. import matplotlib.pyplot as plt
  3. import matplotlib.cm as cm
  4. from math import log
  5. # function for generating plot layout
  6. def preparePlot(xticks, yticks, figsize=(10.5, 6), hideLabels=False, gridColor='#999999', gridWidth=1.0):
  7. plt.close()
  8. fig, ax = plt.subplots(figsize=figsize, facecolor='white', edgecolor='white')
  9. ax.axes.tick_params(labelcolor='#999999', labelsize='10')
  10. for axis, ticks in [(ax.get_xaxis(), xticks), (ax.get_yaxis(), yticks)]:
  11. axis.set_ticks_position('none')
  12. axis.set_ticks(ticks)
  13. axis.label.set_color('#999999')
  14. if hideLabels: axis.set_ticklabels([])
  15. plt.grid(color=gridColor, linewidth=gridWidth, linestyle='-')
  16. map(lambda position: ax.spines[position].set_visible(False), ['bottom', 'top', 'left', 'right'])
  17. return fig, ax
  18. # generate layout and plot data
  19. x = range(1, 50)
  20. y = [log(x1 ** 2) for x1 in x]
  21. fig, ax = preparePlot(range(5, 60, 10), range(0, 12, 1))
  22. plt.scatter(x, y, s=14**2, c='#d6ebf2', edgecolors='#8cbfd0', alpha=0.75)
  23. ax.set_xlabel(r'$range(1, 50)$'), ax.set_ylabel(r'$\log_e(x^2)$')
  24. pass

熟悉matplotlib的人应该知道,这个就是自己生成数据,然后画出来。

运行完代码后,得到如下图片。

CS100.1x-lab0_student的更多相关文章

  1. CS100.1x Introduction to Big Data with Apache Spark

    CS100.1x简介 这门课主要讲数据科学,也就是data science以及怎么用Apache Spark去分析大数据. Course Software Setup 这门课主要介绍如何编写和调试Py ...

  2. CS190.1x Scalable Machine Learning

    这门课是CS100.1x的后续课,看课程名字就知道这门课主要讲机器学习.难度也会比上一门课大一点.如果你对这门课感兴趣,可以看看我这篇博客,如果对PySpark感兴趣,可以看我分析作业的博客. Cou ...

  3. CS100.1x-lab1_word_count_student

    这是CS100.1x第一个提交的有意义的作业,自己一遍做下来对PySpark的基本应用应该是可以掌握的.相关ipynb文件见我github. 这次作业的目的如题目一样--word count,作业分成 ...

  4. Introduction to Big Data with PySpark

    起因 大数据时代 大数据最近太热了,其主要有数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据真实性高(Veracity)4个特点,合起来被称为4V. ...

  5. Ubuntu16.04 802.1x 有线连接 输入账号密码,为什么连接不上?

    ubuntu16.04,在网络配置下找到802.1x安全性,输入账号密码,为什么连接不上?   这是系统的一个bug解决办法:假设你有一定的ubuntu基础,首先你先建立好一个不能用的协议,就是按照之 ...

  6. 解压版MySQL5.7.1x的安装与配置

    解压版MySQL5.7.1x的安装与配置 MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英 ...

  7. RTImageAssets 自动生成 AppIcon 和 @2x @1x 比例图片

    下载地址:https://github.com/rickytan/RTImageAssets 此插件用来生成 @3x 的图片资源对应的 @2x 和 @1x 版本,只要拖拽高清图到 @3x 的位置上,然 ...

  8. 802.1x协议&eap类型

    EAP: 0,扩展认证协议 1,一个灵活的传输协议,用来承载任意的认证信息(不包括认证方式) 2,直接运行在数据链路层,如ppp或以太网 3,支持多种类型认证 注:EAP 客户端---服务器之间一个协 ...

  9. 脱壳脚本_手脱壳ASProtect 2.1x SKE -> Alexey Solodovnikov

    脱壳ASProtect 2.1x SKE -> Alexey Solodovnikov 用脚本.截图 1:查壳 2:od载入 3:用脚本然后打开脚本文件Aspr2.XX_unpacker_v1. ...

随机推荐

  1. C++中数字与字符串之间的转换(转)

    http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 1.字符串数字之间的转换 (1)string --> char ...

  2. 【1】python-正则表达式语法规范与案例

    正则表达式的用法与案例分析 2018-08-24 21:26:14 [说明]:该文主要为了随后复习和使用备查,由于做了word文档笔记,所以此处博文没有怎么排版,没放代码,以插入图片为主, 一.正则表 ...

  3. 第一次项目冲刺(Alpha版本)2017/11/17

    一.当天站立式会议 会议内容 1.对数据库的设计的进一步讨论 2.讨论SSH一些配置细节 3.分配今天的任务 二.任务分解图 三.燃尽图 四.心得 刚接触冲刺,一开始任务没有分布很多,大家要一些熟悉的 ...

  4. struts2 标签使用注意

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qilixiang012/article/details/31954501 通常是用html标签.而不 ...

  5. redis key/value 出现\xAC\xED\x00\x05t\x00\x05

    1.问题现象: 最近使用spring-data-redis 和jedis 操作redis时发现存储在redis中的key不是程序中设置的string值,前面还多出了许多类似\xac\xed\x00\x ...

  6. elasticsearch5.5安装

    beat --------  kafka -------- logstash---------------elasticsearch--------------kibana beat配置文件 [roo ...

  7. Sequelize-nodejs-2-basic usage

    Basic usage基本使用 To get the ball rollin' you first have to create an instance of Sequelize. Use it th ...

  8. jQuery内容横向拖拽滚动

    如果有业务需求:使用横向滚动,而又不想用滚动条,可以使用横向拖拽滚动,主要是利用元素的scrollLeft特性: 废话不多说直接上代码: css: .box{ width:100%; height:3 ...

  9. 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl

    因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Compl ...

  10. 关于CodePlex

    CodePlex是微软的开源工程网站,涉及诸多微软最新技术的开源工程. 网址:http://www.codeplex.com/ 应常去看看.