RDD编程
弹性分布式数据集(Resilient Distributed Dataset,简称RDD)
RDD其实就是分布式元素的集合.在Spark中,对数据的所有操作不外乎创建RDD,转化已有RDD以及调用RDD操作进行求值,而在这一切背后,Spark会自动将RDD中的数据分发到集群上,并将操作并行化执行.
创建操作
Spark提供了两种创建RDD的方式:读取外部数据集和在驱动程序中对一个集合进行并行化.
从文本文件读取
line=sr.textFile(“/path/to/README.md”)
从内存中读取
line=sr.parallelize(["pandas","i like pandas"])
转化操作
转化操作的返回值是RDD,行动操作则是向驱动器程序返回结果或把结果写入外部系统的操作,如filter,union,map
filter
inputRDD=sc.textFile("log.txt")
errorsRDD=inputRDD.filter(lambda x:"error" in x)
行动操作
take(),count(),collect(),saveAsTextFile(),savaASSequenceFile()
数据读取与保存
文件格式
文本文件
json文件
MLlib
MLLib是Spark中提供机器学习函数的库,包含许多机器学习算法.
MLLib中只包含能够在集群上运行良好的并行算法.
安装要求
- 操作系统安装了gfortran线性代数运行库
- 如果在python中使用,需要安装Numpy
数据类型
1 Vector 数学向量。包括稠密向量和稀疏向量.
2 LabeledPoint 带标签的数据点。包含一个特征向量与一个标签
3 Ratting 用户对一个产品的评分
4 Molde 训练算法的结果,一般有一个predict()方法可以用来对新的数据点或数据点组成的RDD应用该模型进行预测
算法
特征提取
mllib.feature包中包含一些用来进行常见特征转化的类.MLlib中有两个算法可以用来计算TF-IDF:Hashing和IDF.
统计
mllib.stat.Statistics类中提供了几种广泛使用的统计函数
分类与回归
聚类
协同过滤与推荐
降维
模型评估
流水线API
参考资料:
Spark快速大数据分析