RDD的创建和转换操作

目录

1.Spark RDD常用操作(Common operations in Spark RDD) 

2.从集合元素创建RDD(Create RDD from collections) 

3.从文本文件创建RDD(Create RDD from text file) 

4.map转换数据(Transform data with map) 


1.Spark RDD常用操作(Common operations in Spark RDD) 

先开一下Hadoop集群

spark@ubuntu:~$ cd /usr/local/hadoop
spark@ubuntu:/usr/local/hadoop$ sbin/start-all.sh

jps

1)可以打开一个Linux终端窗体,在其中输入下面的命令启动PySparkShell交互式编程环境

pyspark

2)在其中输入下面的代码,可以查看RDD类包含的功能方法(在Spark中有一个专门的术语,称为
“算子”):

2.从集合元素创建RDD(Create RDD from collections) 

1)使用parallelize()方法从普通集合元素创建RDD。(向上的箭头可以输入上一步)
>>> a = [1,2,3,4,5]
>>> rdd1 = sc.parallelize(a)
>>> rdd1 = sc.parallelize([1,2,3,4,5])
>>> rdd1
ParallelCollectionRDD[2] at parallelize at PythonRDD.scala:195
 

2)在parallelize()方法中设定一下分区参数

3.从文本文件创建RDD(Create RDD from text file) 

1)先准备两个文本文件,分别存放在本地磁盘目录和HDFS中(可以新开一个终端或者ctrl+D)

2)将数据文件上传至HDFS中

报错的话可以先创建/myfile再创建/myfile/mydata

hdfs dfs -mkdir /myfile

hdfs dfs -mkdir /myfile/mydata

3)从数据文件创建对应的RDD数据集
rdd1 = sc.textFile("file:///home/spark/mydata/a.txt")
>>> rdd2 = sc.textFile("file:///home/spark/mydata/*.txt")
>>> rdd3 = sc.textFile("file:///home/spark/mydata/")
>>> rdd4 = sc.textFile("file:///home/spark/mydata/a.txt.gz")
>>> rdd5 = sc.textFile("file:///home/spark/mydata/*.gz")
>>> 
>>> rdd6 = sc.textFile("hdfs:///myfile/mydata/a.txt")
>>> rdd7 = sc.textFile("hdfs:///myfile/mydata/*.txt")
>>> rdd8 = sc.textFile("hdfs:///myfile/mydata/a.txt.gz")
>>> rdd9 = sc.textFile("hdfs:///myfile/mydata/")
>>> rdd10 = sc.textFile("hdfs:///myfile/mydata/*.gz")

4)查看一下所创建的RDD数据集的具体内容(可以每个都看一下改一下标红数字就好了)

rdd1.collect()

4.map转换数据(Transform data with map) 

1)在PySpark编程环境中输入以下的代码

2)可以根据需要定义各种变换操作

3)对原始RDD元素进行较复杂处理的话,应该定义一个显式的处理函数

4)map()方法可以反复多次使用,从而得到一系列的新RDD数据集

5.flatMap转换数据(Transform data with flatMap) 

1)在PySpark编程环境中输入以下的代码

2)再接着输入下面的代码执行,分析一下出现的结果

6.filter筛选数据(Filter data with filter)

 1)在PySpark编程环境中输入以下的代码

7.sortBy排序数据(Sort data with sortBy) 

1)下面是一个简单的sortBy()的例子

2)定义一个更为通用的sortBy()例子代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值