spark官方文档入门学习

http://spark.apache.org/docs/latest/rdd-programming-guide.html
(1)spark_submit传命令文件参数:
–master
–core
–memory
等的参数设置;
包括一些api属性设置及运行环境设置;
通常的两大步骤
声明sparkContext
conf= spark.Conf().setAppName(‘XX’).setMaster(‘local’)
sc = SparkContext(conf=conf)注意此处sc不能命名成别的名字,否则无效;
(2)明确分布式文件的概念,一个简单的语句:
a =[1,2,3,4,5]
a_1 = sc.parallelize(a)
看似简单,但是原来一个很普通的数据啊,经过sc.parallelize之后,立马变成分布式的数据了,变成一个以line为每一行一行的数据了,我们可以对他进行操作,其每一行就是对应a中的元素,可以做a_1.reduce(lambda a,b : a+b);
(3)明确RDD的概念
RDD是一种分布式文件,它可以通过一定的索引方式将存储在多台分布式机器上的数据读取到,形成给人的感觉就像是直接读的本地一个文件一样,很厉害的机制,可以仔细研究研究;
(4)读取文件
sc.textFile()可以将文件解析成一行一行的,便于做map\reduce操作;
例如a=sc.textFile(’/a.txt’),这样读取之后a就是一行一行的了,并且是分布式的,可以进行a.map(lambda s:len(s)).reduce(lambda a,b:a+b);相当于实现了计算a文件每一行的长度,之后再将所有行的计算的长度之和相加;

相反,sc.wholeTextFiles则和sc.textFile()相反,它是将多行的文件合并成一个总体的文件;
(5)可以看出,rdd数据map之后是一堆key-value文件对;

官方文档场景:
Saving and Loading SequenceFiles
Similarly to text files, SequenceFiles can be saved and loaded by specifying the path. The key and value classes can be specified, but for standard Writables this is not required
>>> rdd = sc.parallelize(range(1, 4)).map(lambda x: (x, "a" * x))
>>> rdd.saveAsSequenceFile("path/to/file")
>>> sorted(sc.sequenceFile("path/to/file").collect())
[(1, u'a'), (2, u'aa'), (3, u'aaa')]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值