前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零到一spark进阶之路(二)

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

作者头像
学到老
发布2019-01-25 14:22:56
5320
发布2019-01-25 14:22:56
举报

操作环境:python3.5

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

代码语言:javascript
复制
from pyspark import SparkContext
from pyspark import SparkContext as sc
from pyspark import SparkConf
import 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或利用已有的session
conf=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])
代码语言:javascript
复制
print(rdd)
#查看list被分成了几部分
print(rdd.getNumPartitions())
#查看分区的状态
print(rdd.glom().collect())

ParallelCollectionRDD[0] at parallelize at PythonRDD.scala:480 3 [[1], [2, 3], [4, 5]]

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

代码语言:javascript
复制
rdd = sc.parallelize([1,2,3,4,5])

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

ParallelCollectionRDD[0] at parallelize at PythonRDD.scala:480 8 [[], [1], [], [2], [3], [], [4], [5]]

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

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作环境:python3.5
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档