第一关 集合并行化创建RDD
- 编程要求
编写一个集合并行化创建RDD的程序。
- 代码实现
# -*- coding: UTF-8 -*-
from pyspark import SparkContext
if __name__ == "__main__":
#********** Begin **********#
# 1.初始化 SparkContext,该对象是 Spark 程序的入口
sc = SparkContext("local", "Simple App")
# 2.创建一个1到8的列表List
List = {1,2,3,4,5,6,7,8}
# 3.通过 SparkContext 并行化创建 rdd
rdd = sc.parallelize(List)
# 4.使用 rdd.collect() 收集 rdd 的内容。 rdd.collect() 是 Spark Action 算子,在后续内容中将会详细说明,主要作用是:收集 rdd 的数据内容
rdd1 = rdd.collect()
# 5.打印 rdd 的内容
print(rdd1)
# 6.停止 SparkContext
sc.stop()
#********** End **********#
第二关 读取外部数据集创建RDD
- 相关知识
textFile 介绍
PySpark可以从Hadoop支持的任何存储源创建分布式数据集,包括本地文件系统,HDFS,Cassandra,Hbase,Amazon S3 等。Spark支持文本文件,SequenceFiles和任何其他Hadoop InputFormat。
文本文件RDD可以使用创建SparkContex的textFile方法。此方法需要一个 URI的文件(本地路径的机器上,或一个hdfs://,s3a:// 等 URI),并读取其作为行的集合。这是一个示例调用:
distFile = sc.textFile("data.txt")
- 编程要求
读取本地文件系统中的文件来创建Spark RDD。
- 代码实现
# -*- coding: UTF-8 -*-
from pyspark import SparkContext
if __name__ == '__main__':
#********** Begin **********#
# 1.初始化 SparkContext,该对象是 Spark 程序的入口
sc = SparkContext("local", "Simple App")
# 文本文件 RDD 可以使用创建 SparkContext 的textFile 方法。此方法需要一个 URI的 文件(本地路径的机器上,或一个hdfs://,s3a://等URI),并读取其作为行的集合
# 2.读取本地文件,URI为:/root/wordcount.txt
raw = sc.textFile("/root/wordcount.txt")
rdd = raw.map(lambda x:x)
# 3.使用 rdd.collect() 收集 rdd 的内容。 rdd.collect() 是 Spark Action 算子,在后续内容中将会详细说明,主要作用是:收集 rdd 的数据内容
rdd.collect()
# 4.打印 rdd 的内容
print(rdd.collect())
# 5.停止 SparkContext
sc.stop()
#********** End **********#



