#-*-coding=utf-8 -*-

from pyspark importSparkConf, SparkContext

sc= SparkContext('local')#map(func):对RDD中的每个元素都执行一个指定的函数产生一个新的RDD。RDD之间的元素是一对一关系

print sc.parallelize([1, 2, 3, 4]).map(lambda x: x * x).collect() #[1, 4, 9, 16]

print sc.parallelize(["hello world", "hi"]).map(lambda line: line.split(" ")).collect() #[['hello', 'world'], ['hi']]

#filter(func):是对RDD元素进行过滤;返回一个新的数据集,由经过func函数后返回值为true的元素组成

print sc.parallelize([1, 2, 3, 4]).filter(lambda x: x>2).collect() #[3, 4]

#flatMap(func):类似于map,但是输出结果会被“拍扁”

print sc.parallelize(["hello world", "hi"]).flatMap(lambda line: line.split(" ")).collect() #['hello', 'world', 'hi']

#sample(withReplacement,fraction,seed)根据给定的随机种子seed,随机抽样出fraction比例的数据,withReplacement:是否放回抽样

print sc.parallelize([1, 2, 3, 4, 5, 6, 7]).sample(True,0.2,1).collect() #[1, 7, 7]

#union(RDD):RDD取并集

print sc.parallelize([1, 2, 3]).union(sc.parallelize([3, 4, 5])).collect() #[1, 2, 3, 3, 4, 5]

#intersection(RDD):RDD取交集

print sc.parallelize([1, 2, 3]).intersection(sc.parallelize([3, 4, 5])).collect() #[3]

#subtract(RDD):差集

print sc.parallelize([1, 2, 3]).subtract(sc.parallelize([3, 4, 5])).collect() #[2, 1]

#cartesian(RDD):笛卡尔乘积,作用于数据集T和U上,返回(T, U),即数据集中每个元素的两两组合

print sc.parallelize([1, 2, 3]).cartesian(sc.parallelize([3, 4, 5])).collect() #[(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 3), (3, 4), (3, 5)]

#distinct():RDD去重

print sc.parallelize([1, 2, 3, 3]).distinct().collect() #[1, 2, 3]

#groupByKey():作用于由键值对(K, V)组成的数据集上,将Key相同的数据放在一起,返回一个由键值对(K, Iterable)组成的数据集

a = sc.parallelize({(1,2),(3,4),(3,6)}).groupByKey().collect() #[(1, Iterable), (3, Iterable)]

for i ina:print str(i[0])+":"+str(list(i[1])) #1:[2] ; 3:[4, 6]

#reduceByKey():作用于键值对(K, V)上,按Key分组,然后将Key相同的键值对的Value都执行func操作,得到一个值

print sc.parallelize({(1,2),(3,4),(3,6)}).reduceByKey(lambda x,y: x+y).collect() #[(1, 2), (3, 10)]

#sortByKey([ascending=True], [numTasks]):按照Key进行排序,ascending的值默认为True,True/False表示升序还是降序

print sc.parallelize({(2,2),(1,4),(3,6)}).sortByKey().collect() #[(1, 4), (2, 2), (3, 6)]

#join(otherDataset, [numTasks]):类似于SQL中的连接操作,即作用于键值对(K, V)和(K, W)上,返回元组 (K, (V, W)),spark也支持外连接,包括leftOuterJoin,rightOuterJoin和fullOuterJoin。例子:

print sc.parallelize({(1,2),(3,4),(3,6)}).join(sc.parallelize({(3,7),(4,8)})).collect() #[(3, (4, 7)), (3, (6, 7))]

print sc.parallelize({(1,2),(3,4),(3,6)}).leftOuterJoin(sc.parallelize({(3,7),(4,8)})).collect() #[(1, (2, None)), (3, (4, 7)), (3, (6, 7))]

print sc.parallelize({(1,2),(3,4),(3,6)}).rightOuterJoin(sc.parallelize({(3,7),(4,8)})).collect() #[(4, (None, 8)), (3, (4, 7)), (3, (6, 7))]

print sc.parallelize({(1,2),(3,4),(3,6)}).fullOuterJoin(sc.parallelize({(3,7),(4,8)})).collect() #[(4, (None, 8)), (1, (2, None)), (3, (4, 7)), (3, (6, 7))]

#cogroup(otherDataset, [numTasks]):作用于键值对(K, V)和(K, W)上,返回元组 (K, (Iterable, Iterable))。这一操作可叫做groupWith。

a = sc.parallelize({(1,2),(3,4),(3,6)}).cogroup(sc.parallelize({(3,7),(4,8)})).collect() #[(4, (Iterable, Iterable)), (1, (Iterable, Iterable)), (3, (Iterable, Iterable))]

for i ina:print str(i[0])+":"+str(list(i[1][0]))+","+str(list(i[1][1])) #4:[],[8] ; 1:[2],[] ;3:[4, 6],[7]

#mapValues(func): 扩展值

print sc.parallelize({("panda",0),("pink",3)}).mapValues(lambda x:(x,1)).collect() #[('pink', (3, 1)), ('panda', (0, 1))]

python print rdd_【Spark机器学习速成宝典】基础篇02RDD常见的操作(Python版)相关推荐

  1. python hstack_Python学习之Numpy速成记——基础篇(中)

    上节课我们一起学习了Numpy的基本功能和它的部分基础知识.今天我们一起接着来学习剩下的部分. 5.一维数组的索引和切片 (1)一维数组的切片操作与Python列表的切片操作很相似.例如,我们可以用下 ...

  2. python速成版_【Spark机器学习速成宝典】基础篇04数据类型(Python版)

    目录 Vector 一个数学向量.MLlib 既支持稠密向量也支持稀疏向量,前者表示向量的每一位都存储下来,后者则只存储非零位以节约空间.后面会简单讨论不同种类的向量.向量可以通过mllib.lina ...

  3. 【Spark机器学习速成宝典】模型篇01支持向量机【SVM】(Python版)

    目录 支持向量机原理 支持向量机代码(Spark Python) 支持向量机原理 详见博文:http://www.cnblogs.com/itmorn/p/8011587.html 返回目录 支持向量 ...

  4. 【Spark机器学习速成宝典】模型篇08保序回归【Isotonic Regression】(Python版)

    目录 保序回归原理 保序回归代码(Spark Python) 保序回归原理 待续... 返回目录 保序回归代码(Spark Python) 代码里数据:https://pan.baidu.com/s/ ...

  5. python支持向量机模型_【Spark机器学习速成宝典】模型篇08支持向量机【SVM】(Python版)...

    目录 什么是支持向量机(SVM) 引例 假定有训练数据集 ,其中,x是向量,y=+1或-1.试学习一个SVM模型. 分析:将线性可分数据集区分开的超平面有无数个,但是SVM要做的是求解一个最优的超平面 ...

  6. 【Spark机器学习速成宝典】推荐引擎——协同过滤

    目录 推荐模型的分类 ALS交替最小二乘算法:显式矩阵分解 Spark Python代码:显式矩阵分解 ALS交替最小二乘算法:隐式矩阵分解 Spark Python代码:隐式矩阵分解 推荐模型的分类 ...

  7. 【机器学习速成宝典】模型篇02线性回归【LR】(Python版)

    目录 什么是线性回归 最小二乘法 一元线性回归 多元线性回归 什么是规范化 Python代码(sklearn库) 什么是线性回归(Linear regression) 引例 假设某地区租房价格只与房屋 ...

  8. Spark性能优化指南——基础篇

    在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作,应用 ...

  9. 0基础python入门书籍 excel_【曾贤志】从零基础开始用Python处理Excel数据 - 第1季 基础篇...

    =====[曾贤志]从零基础开始用Python处理Excel数据 第1季 基础篇====== 1-1 什么是python? .mp4 1-2 为什么要学习用Python处理Excel表格? .mp4 ...

最新文章

  1. Codeforces Round #409 (Div. 2) C Voltage Keepsake(二分)
  2. 《强化学习周刊》第30期:Deep Mind开展人机交互的新试点研究、MIT提出神经进化优化框架...
  3. 三维人脸识别研究进展综述(附pdf)
  4. 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
  5. Flex itemReanderer(转)
  6. c++矩阵连乘的动态规划算法并输出_「Javascript算法设计」× 动态规划与回溯算法...
  7. [转载]创建数据库与完成数据添删改查--第一种写法
  8. python和c 的区别-Python与C语言有什么区别?
  9. 随机游走问题的神奇应用(二)
  10. 测量学用C语言编程求子午线弧长,GPS数据解析 数据拆分 坐标转换 显示线路图源代码...
  11. e站host地址_ip地址基础入门知识
  12. 20191202Spark
  13. java语言变量分为_在Java语言中变量分为四种,分别是___________________________________________。_学小易找答案...
  14. 搞定iOS的几种页面跳转方式
  15. 有符号数与无符号数的运算
  16. 元旦给计算机老师的贺卡,元旦贺卡给老师的祝福语(精选50句)
  17. 关于短视频平台框架搭建与技术选型探讨
  18. 【博学谷学习记录】超强总结,用心分享|字体图标介绍
  19. 研究生常用的一些学术搜索引擎
  20. C语言练习之交换两个数组中的内容

热门文章

  1. java流式计算学习笔记
  2. windows安全警报怎么关闭_永久关闭WIN10自动杀毒(windows安全中心)
  3. 超详细|一篇搞定操作系统——用户接口
  4. MATLAB“内部矩阵维度必须一致”(及要注意数组的乘法运算是要带点)
  5. 计算机毕业论文指导过程记录表6,毕业论文指导记录表6次
  6. 《惢客创业日记》2018.12.13(周四) 创业从0到1的10个阶段(四)
  7. 2021年广东省安全员B证(项目负责人)报名考试及广东省安全员B证(项目负责人)模拟考试题库
  8. 易驾佳智能机器人教练_用RoboCoach代替驾校教练 易驾佳欲用AI技术改变驾培
  9. cas入门之二spring配置文件
  10. Windows系统通用定时重启命令