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学习----基本操作的更多相关文章

  1. Docker 学习基本操作与守护式容器

    Docker 学习基本操作与守护式容器 容器操作 运行容器 docker run --name指定名字 -istdin -ttty虚拟终端 在终端中用 exit 即可退出容器,并结束运行 查看容器 p ...

  2. 5 pyspark学习---Broadcast&Accumulator&sparkConf

    1 对于并行处理,Apache Spark使用共享变量.当驱动程序将任务发送给集群上的执行者时,集群中的每个节点上都有一个共享变量的副本,这样就可以用于执行任务了. 2 两种支持得类型 (1)Broa ...

  3. 4 pyspark学习---RDD

    开始新的东西,其实很多操作在第二篇的时候就有所介绍啦.在这里继续学习一遍加深一下印象. 1关于RDD (1) RDD-----Resilient Distributed Dataset,弹性分布式数据 ...

  4. Neo4j学习——基本操作(一)

    由于开始学习知识图谱,因此需要涉及到neo4j的使用一.介绍neo4j是一个图形数据库基于Java开发而成,因此需要配置jvm才可以运行配置请参考我前面的一篇blog:https://www.cnbl ...

  5. 关于embedding-深度学习基本操作 【Word2vec, Item2vec,graph embedding】

    https://zhuanlan.zhihu.com/p/26306795 https://arxiv.org/pdf/1411.2738.pdf https://zhuanlan.zhihu.com ...

  6. 3 pyspark学习---sparkContext概述

    1 Tutorial Spark本身是由scala语言编写,为了支持py对spark的支持呢就出现了pyspark.它依然可以通过导入Py4j进行RDDS等操作. 2 sparkContext (1) ...

  7. pyspark学习笔记

    记录一些pyspark常用的用法,用到的就会加进来 pyspark指定分区个数 通过spark指定最终存储文件的个数,以解决例如小文件的问题,比hive方便,直观 有两种方法,repartition, ...

  8. pyspark 学习笔记

    from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python Spark S ...

  9. C++ 学习路线推荐

        相信有非常大一部分学计算机的童鞋都是靠自学,即使本身是计算机专业的同学,也会认为只通过课堂上的学习是远远不够的,并且在上课时所用到的教材也不够好.然而自学的时候有个非常大的问题就是找不到合适的 ...

随机推荐

  1. In Git, there are two main ways to integrate changes from one branch into another: the merge and the rebase.

    https://git-scm.com/book/en/v2/Git-Branching-Rebasing

  2. 在MFC中使用大漠插件

    打开Class Wizard,Add Class...->MFC Class From TypeLib... File->Location->>> Finish-> ...

  3. Javascript的参数详解

    函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,默认设置为undefined 在调用函数时如果传递参数超过了定义时参数,jS会忽略掉多余参数 jS中不能直接写默认值,可以通过a ...

  4. 获取app-package和app-activity的值

    方法一 原文链接:http://mp.weixin.qq.com/s/KTkfmibSoaGOmDazJmZ8Sw 利用appium图形界面和已有的apk文件获取package和activity. 点 ...

  5. go 文件上传

    package main import ( "fmt" "io" "io/ioutil" "log" "net ...

  6. vue指令与$nextTick 操作DOM的不同之处

    异步更新队列 可能你还没有注意到,Vue 异步执行 DOM 更新.只要观察到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变.如果同一个 watcher 被多次触发,只会被推 ...

  7. netstat 参数

    Netstat用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况. NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] ...

  8. java基础以及操作Excle

    今天把会经常用的几个集合的迭代方法又练习了一下,放在这里,经常复习! map集合迭代 /*** 迭代map[1]*/ for (Integer key : map.keySet()) {//迭代key ...

  9. 基于BASYS2的VHDL程序——数字钟

    在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...

  10. SpringMVC与Struts2区别与比较

    1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...