spark 的一些粗浅使用经验
工作中学习使用了一下Spark做数据分析,主要是用spark的python接口,首先是pyspark.SparkContext(appName=xxx)
,这是初始化一个Spark应用实例或者说会话,不能重复,
返回的实例句柄就可以调用textFile(path)
读取文本文件,这里的文本文件可以是HDFS上的文本文件,也可以普通文本文件,但是需要在Spark的所有集群上都存在,否则会
读取失败,parallelize
则可以将python生成的集合数据读取后转换成rdd(A Resilient Distributed Dataset (RDD),一种spark下的基本抽象数据集),基于这个RDD就可以做
数据的流式计算,例如map reduce
,在Spark中可以非常方便地实现
简单的mapreduce word count示例
1 2 3 4
| textFile = sc.parallelize([(1,1), (2,1), (3,1), (4,1), (5,1),(1,1), (2,1), (3,1), (4,1), (5,1)]) data = textFile.reduceByKey(lambda x, y: x + y).collect() for _ in data: print(_)
|
结果
1 2 3 4 5
| (3, 2) (1, 2) (4, 2) (2, 2) (5, 2)
|