为了账号安全,请及时绑定邮箱和手机立即绑定

从零到一spark进阶之路(二)

标签:
Python

从零到一spark进阶之路(二) 
关于从零到一spark进阶之路(一)内容请点击下面的直通车 
1.1RDD 
(0)随便找个点理解以下 
(1)RDD的特点 
(2)RDD的好处 
(3)RDD的内部属性 
1.2RDD操作 
1.2.1 转化操作 
1.2.2 行动操作

直通车

2.如何创建RDD?

操作环境:python3.5

两种方式:①读取外部数据集② 在驱动器程序中对一个集合进行并行化 
RDD可以从普通数组创建出来,也可以从文件系统或者HDFS中的文件创建出来。

from pyspark import SparkContextfrom pyspark import SparkContext as scfrom pyspark import SparkConfimport os
os.environ["PYSPARK_PYTHON"]="D:\office3\python\\anaconda3.5\\3.5\envs\python35\\python"##任何Spark程序都是SparkContext开始的,SparkContext的初始化需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数(比如主节点的URL)。初始化后,就可以使用SparkContext对象所包含的各种方法来创建和操作RDD和共享变量。Spark shell会自动初始化一个SparkContext(在Scala和Python下可以,但不支持Java)。#getOrCreate表明可以视情况新建session或利用已有的sessionconf=SparkConf().setAppName("miniProject").setMaster("local[*]")
sc=SparkContext.getOrCreate(conf)#(a)利用list创建一个RDD;使用sc.parallelize可以把Python list,NumPy array或者Pandas Series,Pandas DataFrame转成Spark RDD。rdd = sc.parallelize([1,2,3,4,5])123456789101112
print(rdd)#查看list被分成了几部分print(rdd.getNumPartitions())#查看分区的状态print(rdd.glom().collect())12345

ParallelCollectionRDD[0] at parallelize at PythonRDD.scala:480 

[[1], [2, 3], [4, 5]]

下面不指定分区,执行语句

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

print(rdd)
print(rdd.getNumPartitions())
print(rdd.glom().collect())12345

ParallelCollectionRDD[0] at parallelize at PythonRDD.scala:480 

[[], [1], [], [2], [3], [], [4], [5]]

电脑是配置,逻辑8核。多次执行结果一样。可以看出创建了8 个executor。 
这里写图片描述


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消