spark RDD算子学习(基本命令)

1、进入spark

  • 导入包对象
from pyspark import SparkContext, SparkConf
  • 初始化对象
conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)

如果使用的是命令行:对象则已经初始化好了

2 使用命令行

  • 使用4个cpu核心
 $ ./bin/pyspark --master local[4]
  1. 把code.py文件添加到搜索路径中
 $ ./bin/pyspark --master local[4] --py-files code.py
  1. 用ipython 启动命令行
$ PYSPARK_DRIVER_PYTHON=ipython ./bin/pyspark
### 使用ipython notebook 选项
$ PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook --pylabinline" ./bin/pyspark
  1. 更多命令
 ./bin/pyspark --help

3 RDD 介绍

Spark是以RDD概念为中心运行的。RDD是一个容错的、可以被并行操作的元素集合。创建一个RDD有两个方法:在你的驱动程序中并行化一个已经存在的集合;从外部存储系统中引用一个数据集,这个存储系统可以是一个共享文件系统,比如HDFS、HBase或任意提供了Hadoop输入格式的数据来源。

  • 构建并行化集合
data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data,2) #后面2表示使用分片数,一个集合对应2-4个分片
  • 加载外部数据集
distFile = sc.textFile("data.txt"2) #分片数为二
textFile("/my/directory")#读取当前文件夹中全部
textFile("/my/directory/*.txt")#读取全部txt
textFile("/my/directory/*.gz")#读取全部gz
可写类型Python类型
Textunicode str
IntWritableint
FloatWritablefloat
DoubleWritablefloat
BooleanWritablebool
BytesWritablebytearray
NullWritableNone
MapWritabledict

- 序列文件的保存与读取

rdd = sc.parallelize(range(1, 4)).map(lambda x: (x, "a" * x ))  
rdd.saveAsSequenceFile("path/to/file")  #保存序列文件
sorted(sc.sequenceFile("path/to/file").collect())   #读取序列文件并排序

4、RDD 的基本操作-wordcount程序

rdd1 =  sc.textFile("/spark/wc.txt") # 读取目标文件
rdd2 = rdd1.map(lambda a : a.split(''))  #将每行切分成单词
rdd3 = rdd.flatMap(lambda a:(a,1)) # 做map映射,这里的列表嵌套,所以用flatMap
rdd4 = rdd.reduceByKey(lambda a,b:a + b) #按单词key 来统计数量
rdd4.collect() # 结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值