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

4 篇文章 0 订阅

从零到一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 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])
print(rdd)
#查看list被分成了几部分
print(rdd.getNumPartitions())
#查看分区的状态
print(rdd.glom().collect())

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

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

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。
这里写图片描述

微信号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT界的小小小学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值