Spark机器学习

本文详细介绍了Spark的机器学习库MLlib,包括Rdd操作、特征提取、线性回归、逻辑回归、支持向量机、朴素贝叶斯、决策树与随机森林、聚类、协同过滤和推荐系统等内容,结合实例解析了各项操作和模型的使用方法。
摘要由CSDN通过智能技术生成

[TOC]
这篇文章参考《Spark快速大数据分析》,归纳spark技术核心的rdd及MLlib以及其中几个重要库的使用。

初始化操作

spark shell: bin/pyspark
每个spark应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作,驱动器程序包含应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作,驱动器程序通过一个sparkcontext对象来访问spark(sc),这个对象代表对计算集群的一个连接。可以用它来创建rdd.

sc.textFile(“file-name”) #创建一个代表文件的rdd
sc.parallelize([,,])#把一个已有的集合传递给spark
bin/spark-submit python-file.py
#初始化sparkContext:
from pyspark import SparkConf,SparkContext
conf=SparkConf().setMaster(“local”).setAppName(“MYAPP”)
SC=SparkContext(conf=conf)

Rdd

rdd有两种操作:转化操作和行动操作,转化操作会由一个rdd生成一个新的rdd,行动操作会对rdd计算出一个结果。spark惰性计算转化操作,只有在第一个行动操作中用到时,才会真正计算。

常见的Rdd转化操作

  • map():接收一个函数,把这个函数用于rdd的每个元素,将函数的返回结果作为结果rdd中对应元素的值。lambda表达式
  • filter():接收一个函数,并将rdd中满足该函数的元素放入新的rdd中返回。
  • flatmap():每个输入元素生成多个输出元素,一个简单应用是把输入的字符串切分为单词。
  • distinct():生成一个只包含不同元素的新rdd。开销很大,因为它需要将所有数据通过网络进行混洗(shuffle).
  • union(other):返回一个包含两个rdd中所有元素的rdd,会重复
  • intersection(other):返回两个rdd中都有的元素。会去重复
  • substract(other):只存在第一个rdd中,不存在第二个rdd中的,会suffle
  • cartesian(other):计算笛卡尔集,返回所有可能的(a,b)对,用途:用户对各种产品的预期兴趣度,自身做笛卡尔积,用于求用户相似度的应用中。-开销大
  • sample(with replacement,fraction,[seed]),采样rdd以及是否替换

常见的rdd行动操作

  • collect():返回rdd中所有的元素
  • count():rdd中元素
  • countByvalue():各元素在rdd中出现的次数
  • take(num):从rdd中返回num个元素
  • top(num):返回最前面的num个元素
  • takeOrderd(num)(ordering-func):从rdd中按照提供的顺序返回最前面的num个元素
  • ruduce(func): 并行整合rdd中的所有数据
  • fold(zero)(func):与reduce一样,但是需要提供初始值
  • aggregate(zerovalue(seqop,combop))和reduce相似,但是通常返回不同类型的函数
  • foreach(func):对rdd中每个元素使用给定的函数

键值对操作 pair Rdd

提供了并行操作各个键或跨节点重新进行数据分组的操作接口。
reduceByKey()可以分别规约每个键对应的数据
join()把两个rdd中键相同的元素组合在一起
创建pair rdd
把普通的rdd转换成pair rdd,map操作传递的函数需要返回键值对
pairs=lines.map(lambda x: (x.split(“”)[0],x))
转化操作:
reduceByKey() 合并具有相同键的值
groupB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值