Spark RDD编程 python版本(2)

1. 创建RDD

RDD 是弹性分布数据集,Resilient Distributed Dataset. RDD是SPARK所提供的最基本抽象,代表分布在集群中多台机器上的对象集合。

基于SparkContext基于外部数据进行创建,或者通过已有的RDD进行转换,得到RDD。

rdd = sc.textFile('/data/word.txt')

RDD以分区形式分布在集群中多个机器,每个分区代表数据集的一个子集。

nums = [1,2,3,4,5]
rdd = sc.parallelize(nums)

2. RDD操作

转换:

操作含义
filter(func)筛选满足函数的元素
map(func)
flatMap(func)
groupByKey(func)
reduceByKey(func)

行动操作:
真正触发计算。

操作含义
count()计数
collect()以数组的形式返回数据集的所有元素
first()返回第一个元素
take(n)以数组形式返回前n个元素
reduce(n)通过func集中的元素
foreach(func)每个元素传递到func中运行

统计文档单行的单词最多数量。

words = sc.textFile('/data/word.txt')
words.map(lambda x:len(x.split(" "))).reduce(lambda a,b:(a > b and a or b))

3. 持久性

由于spark的惰性机制,导致每次的行动,都得从头到尾运行,如果碰到多次的操作,效率很低。一个方法是把上一次行动保存到内存。

list = ["Hadoop", "Spark", "Hive"]
rdd = sc.parallelize(list)
rdd.cache()
print(rdd.count())
print(",".join(rdd.collect()))

运行结果:

3
'Hadoop,Spark,Hive'

参考:

  1. Spark2.1.0+入门:RDD编程(Python版);
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页