SparkContext

  通常作为入口函数,可以创建并返回一个RDD。

  如把Spark集群当作服务端那Spark Driver就是客户端,SparkContext则是客户端的核心;

  如注释所说 SparkContext用于连接Spark集群、创建RDD、累加器(accumlator)、广播变量(broadcast variables)

map操作:
  会对每一条输入进行指定的操作,然后为每一条输入返回一个对象; flatMap操作:
  “先映射后扁平化”
操作1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象
操作2:最后将所有对象合并为一个对象

zip函数:

x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy #[(1, 4), (2, 5), (3, 6)]

例程WordCount:

from pyspark import SparkContext

sc = SparkContext('local')
'''
在一个Spark程序的开始部分,有好多是用sparkContext的parallelize制作RDD的,
是ParallelCollectionRDD,创建一个并行集合。
doc这里包含2个task
'''
doc = sc.parallelize([['a', 'b', 'c'], ['b', 'd', 'd']])
print(doc.count()) # '''
map操作:会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;
flatMap操作:“先映射后扁平化”
操作1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象
操作2:最后将所有对象合并为一个对象
'''
words = doc.map(lambda d: d).collect()
print(words)
words = doc.flatMap(lambda d: d).collect()
print(words)
words = doc.flatMap(lambda d: d).distinct().collect()
print(words) '''
zip(list1, list2)把list1,list2变成一个list(e1(list1), e1(list2),e2...)
这里把字符给标号(0 : len(words))
'''
word_dict = {w: i for w, i in zip(words, range(len(words)))} '''
broadcast将变量word_dict高效的传递给每一个子节点
word_dict_b就是word_dict在子节点处理函数中的别名,内容是一致的区别就是要是用.value来用里面的值
'''
word_dict_b = sc.broadcast(word_dict) def word_count_per_doc(d):
dict_tmp = {}
wd = word_dict_b.value
for w in d:
dict_tmp[wd[w]] = dict_tmp.get(wd[w], 0) + 1
return dict_tmp '''
每一个doc都会调用一次 word_count_per_doc
'''
print(doc.map(word_count_per_doc).collect())
print("successful!")

SparkContext, map, flatMap, zip以及例程wordcount的更多相关文章

  1. RxJava【变换】操作符 map flatMap concatMap buffer MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. python几个重要的函数(lambda,filter,reduce,map,zip)

    一.匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一 ...

  3. Spark 学习笔记之 map/flatMap/filter/mapPartitions/mapPartitionsWithIndex/sample

    map/flatMap/filter/mapPartitions/mapPartitionsWithIndex/sample:

  4. 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...

  5. map & flatMap 浅析

    我之前一直以为我是懂 map 和 flatMap 的.但是直到我看到别人说:「一个实现了 flatMap 方法的类型其实就是 monad.」我又发现这个熟悉的东西变得陌生起来,本节烧脑体操打算更细致一 ...

  6. Swift --> Map & FlatMap

    转载自:https://segmentfault.com/a/1190000004050907 Map map函数能够被数组调用,它接受一个闭包作为参数,作用于数组中的每个元素.闭包返回一个变换后的元 ...

  7. python迭代和解析(3):range、map、zip、filter和reduce函数

    解析.迭代和生成系列文章:https://www.cnblogs.com/f-ck-need-u/p/9832640.html range range()是一个内置函数,它返回一个数字序列,功能和Li ...

  8. Python——高阶函数——map filter zip

    一.map函数 1.作用:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 2.实例 def f(x): return x* ...

  9. Python---高级函数map, filter, zip, enumerate等的用法

    今天看自然语言处理这本书的时候,被这里的高级函数的概念吸引了,因为我觉得所有的函数都只是函数而已,是为了实现特定功能而实现的,不应该有高级,低级之分啊!不过了解之后,发现这几个函数确实是有点高级,非常 ...

随机推荐

  1. C#中使用 Oracle的事务与存储过程

    1 存储过程 1.1 不带参数,没有返回值 创建表 create table test (ID number, NAME varchar2(), SEX varchar2(), AGE number, ...

  2. BIOS Setup

      一般而言,普通的计算机系统应用不必关注BIOS的设置.但是如果涉及到主板集成声卡,网卡,或需要进行远程网络唤醒等操作时,必须在BIOS中设置相应参数才能使电脑正常工作.BIOS能对硬件设备进行初始 ...

  3. 文本分类——NaiveBayes

    前面文章已经介绍了朴素贝叶斯算法的原理,这里基于NavieBayes算法对newsgroup文本进行分类測试. 文中代码參考:http://blog.csdn.net/jiangliqing1234/ ...

  4. Python学习笔记_Python对象

    Python学习笔记_Python对象 Python对象 标准类型 其它内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比較 对象身份比較 布尔类型 ...

  5. javascript返回顶端源代码

    <div style="display:none" id="goTopBtn"><img src="http://www.unity ...

  6. CListCtrl在处理NM_CLICK的时候,怎样推断Ctrl SHIFT ALT键是否按下

    百度 NMITEMACTIVATE 在 NM_CLICK  的处理函数中.将 NMHDR 结构强制转换成 NMITEMACTIVATE.这一步MS已经帮助我们完毕了,当中,结构体中的 uKeyFlag ...

  7. 开发,从需求出发 &#183; 之二 造飞机的工厂

    CD镇楼~~! 如今.让我们切换到后端开发者的角度看问题.我们须要做的是实现一下这个类,让它返回真实的业务数据. package cn.com.sitefromscrath.service; impo ...

  8. hadoop分布式安装部署具体视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)

    參考资源下载:http://pan.baidu.com/s/1ntwUij3视频安装教程:hadoop安装.flvVirtualBox虚拟机:hadoop.part1-part5.rarhadoop文 ...

  9. lamdba匿名函数 sored()函数 filter()函数 map函数() 递归函数

    帅爆太阳的男人 1,lamdba匿名函数:为了解决一下简单的需求而设计的一句话函数,语法: 函数名 = lambda 参数: 返回值 def func(n): return n*n print(fun ...

  10. 关于Android热点模式下的UDP广播

    最近尝试让easylink3在热点模式下连接,发现用普通的广播地址会报错,Network unreachable 尝试按照stackoverflow上的方法: public static int ge ...