2 pyspark学习----基本操作
1 spark的python环境部署可以参照上面一篇哟。http://www.cnblogs.com/lanjianhappy/p/8705974.html
2 pyspark的基本操作。
# coding:utf-8
from pyspark import SparkContext, SparkConf sc = SparkContext()#init contet
intRDD = sc.parallelize([3,1,2,5,5])#create RDD
stringRDD = sc.parallelize(['apple','orange','yellow'])
print intRDD.collect()#transfrom to python
print stringRDD.collect()
#每个元素+1
print intRDD.map(lambda x:x+1).collect()#4,2,3,6,6
#输出小于3
print intRDD.filter(lambda x:x<3).collect()#print number<3 in RDD
print stringRDD.filter(lambda x:'ra' in x).collect()#print contain 'ra' print intRDD.distinct().collect()
#奇数偶数分开
result = intRDD.groupBy(lambda x:x%2).collect()
print sorted([(x,sorted(y)) for(x,y) in result]) #多个RDD并集
intRDD1 = sc.parallelize([3,1,2,3,5])
intRDD2 = sc.parallelize([8,2,1,9,5])
intRDD3 = sc.parallelize([7,1,3,4,7])
print intRDD1.union(intRDD2).union(intRDD3).collect() #交集
print intRDD1.intersection(intRDD2) #差集
print intRDD1.subtract(intRDD2) #笛卡尔集
print intRDD1.cartesian(intRDD2).collect()#返回10个元素 #读取元素
#取第一条数据
print intRDD.first()
#取前两条数据
print intRDD.take(2)
#升序排列,并取前3条数据
print intRDD.takeOrdered(3)
#降序排列,并取前3条数据
print intRDD.takeOrdered(3,lambda x:-x) #统计功能 min max stdev count sum mean
print intRDD.stats() #转换操作
kvRDDW1 = sc.parallelize([(1,2),(3,4),(5,6),(7,8)])
#分别得到keys values
print kvRDDW1.keys().collect()#1 3 5 7
print kvRDDW1.values().collect()#2 4 6 8 #筛选元素 筛选小于5的数据 x[0]按照值 x[1]按照键
print kvRDDW1.filter(lambda x:x[0]<5).collect()
print kvRDDW1.filter(lambda x:x[1]<5).collect()
#值运算 mapvalues处理value
print kvRDDW1.mapValues(lambda x:x**2).collect() #按照key排序
print kvRDDW1.sortByKey().collect()
print kvRDDW1.sortByKey(True).collect()
print kvRDDW1.sortByKey(False).collect()#倒序 #对具有相同key的进行合并
print kvRDDW1.reduceByKey(lambda x,y:x+y).collect() #多个RDD相同的key进行内连接
kvRDD1 = sc.parallelize([(3,4),(3,6),(5,6),(1,2)])
kvRDD2 = sc.parallelize([(3,8)])
print kvRDD1.join(kvRDD2).collect()#[(3, (4, 8)), (3, (6, 8))] #key值统计
print kvRDD1.countByKey().collect()
#lookup 根据key查找对应的value
print kvRDD1.lookup(3)
加油!
2 pyspark学习----基本操作的更多相关文章
- Docker 学习基本操作与守护式容器
Docker 学习基本操作与守护式容器 容器操作 运行容器 docker run --name指定名字 -istdin -ttty虚拟终端 在终端中用 exit 即可退出容器,并结束运行 查看容器 p ...
- 5 pyspark学习---Broadcast&Accumulator&sparkConf
1 对于并行处理,Apache Spark使用共享变量.当驱动程序将任务发送给集群上的执行者时,集群中的每个节点上都有一个共享变量的副本,这样就可以用于执行任务了. 2 两种支持得类型 (1)Broa ...
- 4 pyspark学习---RDD
开始新的东西,其实很多操作在第二篇的时候就有所介绍啦.在这里继续学习一遍加深一下印象. 1关于RDD (1) RDD-----Resilient Distributed Dataset,弹性分布式数据 ...
- Neo4j学习——基本操作(一)
由于开始学习知识图谱,因此需要涉及到neo4j的使用一.介绍neo4j是一个图形数据库基于Java开发而成,因此需要配置jvm才可以运行配置请参考我前面的一篇blog:https://www.cnbl ...
- 关于embedding-深度学习基本操作 【Word2vec, Item2vec,graph embedding】
https://zhuanlan.zhihu.com/p/26306795 https://arxiv.org/pdf/1411.2738.pdf https://zhuanlan.zhihu.com ...
- 3 pyspark学习---sparkContext概述
1 Tutorial Spark本身是由scala语言编写,为了支持py对spark的支持呢就出现了pyspark.它依然可以通过导入Py4j进行RDDS等操作. 2 sparkContext (1) ...
- pyspark学习笔记
记录一些pyspark常用的用法,用到的就会加进来 pyspark指定分区个数 通过spark指定最终存储文件的个数,以解决例如小文件的问题,比hive方便,直观 有两种方法,repartition, ...
- pyspark 学习笔记
from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python Spark S ...
- C++ 学习路线推荐
相信有非常大一部分学计算机的童鞋都是靠自学,即使本身是计算机专业的同学,也会认为只通过课堂上的学习是远远不够的,并且在上课时所用到的教材也不够好.然而自学的时候有个非常大的问题就是找不到合适的 ...
随机推荐
- Intel平台map
- Java的泛型约束和限制
不能用基本类型实例化类型参数 不能用类型参数代替基本类型:例如,没有Pair<double>,只有Pair<Double>,其原因是类型擦除.擦除之后,Pair类含有Objec ...
- 如何求文件File的字节数
[java]代码库 import java.io.*; /** * 获取文件的字节数 */ class FileInputStreamS { public static voi ...
- [网页游戏开发]Morn简介及使用教程
网页游戏开发利器,morn系列教程之Morn简介及使用教程 网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Mor ...
- 02 php生成xml数据
<?php class Response_xml{ /** *按xml方式输出通信 *@param integet $code 状态码 *@param string $message 提示信息 ...
- c# 编程修改 wince 系统时间
[StructLayout(LayoutKind.Sequential)] public struct SYSTEMTIME { public ushort wYear; public ushort ...
- poj 2888 Magic Bracelet <polya定理>
题目:http://poj.org/problem?id=2888 题意:给定n(n <= 10^9)颗珠子,组成一串项链,每颗珠子可以用m种颜色中一种来涂色,如果两种涂色方法通过旋转项链可以得 ...
- Hibernate中的HQL语言
一.HQL语言简介 HQL全称是Hibernate Query Language,它提供了是十分强大的功能,它是针对持久化对象,直接取得对象,而不进行update,delete和insert等操作.而 ...
- BZOJ 2069 POI2004 ZAW 堆优化Dijkstra
题目大意:给定一张无向图.每条边从两个方向走各有一个权值,求从点1往出走至少一步之后回到点1且不经过一条边多次的最短路 显然我们须要从点1出发走到某个和点1相邻的点上,然后沿最短路走到还有一个和点1相 ...
- protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object
使用protobuf出错:protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object ...