spark
文章平均质量分 77
hellozhxy
这个作者很懒,什么都没留下…
展开
-
Spark原理小结
1、spark是什么? 快速,通用,可扩展的分布式计算引擎2、弹性分布式数据集RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。RDD的属性1)一组分片(Partition),.转载 2021-09-22 16:09:05 · 422 阅读 · 0 评论 -
Spark工作原理
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:1.运行速度快,Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。2.适用场景广泛,转载 2021-09-22 11:24:19 · 166 阅读 · 0 评论 -
Spark运行原理
在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位。Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势。无论是性能,还是方案的统一性,对比传统的Hadoop,优势都非常明显。Spark提供的基于RDD的一体化解决方案,将MapReduce、Streaming、SQL、Machine Learning、Graph Processing等模型统一到一个平台下,并以一致的API公开,并提供相同的部署方案,使得Spark的工程应用领域变得更加广原创 2021-09-22 10:15:03 · 1291 阅读 · 0 评论 -
Spark的基本原理
一,Spark优势特点作为大数据计算框架MapReduce的继任者,Spark具备以下优势特性。1,高效性不同于MapReduce将中间计算结果放入磁盘中,Spark采用内存存储中间计算结果,减少了迭代运算的磁盘IO,并通过并行计算DAG图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark 比 MapReduce 快100倍。2,易用性不同于MapReduce仅支持Map和Reduce两种编程算子,Spark提供了超过80种不同的Transformation转载 2021-09-18 15:53:07 · 843 阅读 · 0 评论 -
Spark运行原理
Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程序的main方法创建的SparkContext对象与集群交互。1、Spark通过SparkContext向Cluster manager(资源管理器)申请所需执行的资源(cpu、内存等)2、Cluster manager分配应用程序执行需要的资源,在Worker节点上创建Executor3、SparkContext 将程序代码(jar包或者python文件)和Task任务发送给Executor执行,并收集结果给Driver。转载 2021-09-18 15:26:37 · 1203 阅读 · 0 评论 -
深入理解XGBoost:分布式实现
文章来源:公众号【Coggle数据科学】写在前面本文将重点介绍XGBoost基于Spark平台Scala版本的实现,带领大家逐步完成特征提取、变换和选择、XGBoost模型训练、Pipelines、模型选择。XGBoost简单回顾XGBoost(Extreme Gradient Boosting)由华盛顿大学的陈天奇博士提出,最开始作为分布式(深度)机器学习研究社区(DMLC)小组...转载 2020-04-03 11:21:47 · 1735 阅读 · 0 评论 -
spark.mllib:GradientBoostedTrees
Gradient-Boosted Trees(GBT或者GBDT) 和 RandomForests 都属于集成学习的范畴,相比于单个模型有限的表达能力,组合多个base model后表达能力更加丰富。关于集成学习的理论知识,包括GBT和Random Forests的一些比较好的参考资料:周志华教授的"Ensemble Methods: Foundations and Algorithms"...转载 2019-12-30 15:42:29 · 270 阅读 · 0 评论 -
spark.mllib:NaiveBayes
朴素贝叶斯模型简述:贝叶斯模型通过使用后验概率和类的概率分布来估计先验概率,具体的以公式表达为P(Y)可以使用训练样本的类分布进行估计。如果X是单特征也很好估计,但如果X={x1,x2,..,xn}等n个特征构成,那估计n个特征的联合概率分布P(X)=P(x1,x2,...,xn)将变得非常困难。由于贝叶斯模型的参数难于估计,限制了其的应用。朴素贝叶斯模型是贝叶斯模型的简化版本,通过假设...转载 2019-12-30 15:38:29 · 296 阅读 · 0 评论 -
spark.mllib:回归算法
Spark实现了三类线性回归方法:1、LinearRegression:普通线性回归模型2、LassoRegression:加L1正则化的线性回归3、RidgeRegression:加L2正则化的线性回归Spark采用了模型和训练分离定义的方式,模型和模型的迭代计算都很清晰:如LinearRegressionModel和LinearRegressionWithSGD,LassoMode...转载 2019-12-30 15:30:59 · 506 阅读 · 0 评论 -
spark.mllib:Optimizer
Spark中的求解器,根据输入的训练数据及设定的迭代次数、正则化项、参数收敛精度等进行迭代求解模型的参数。Spark内部实现来两类求解器,基于随机梯度下降(miniBatch选取样本)的GradientDescent、基于大规模数值优化算法的LBFGS。在整体架构上,两个类都继承自Optimizer,并需要调用Gradient和UpdaterGradientDescentGradient...转载 2019-12-30 15:16:48 · 190 阅读 · 0 评论 -
spark.mllib:bagging方法
在训练集成分类器时,关键的一步在于如何从全训练样本集中构建子样本集提供给子分类器进行训练。目前主流的两种子样本集构造方式是bagging方法和boosting方法。bagging方法的思想是从全样本集中有放回的进行抽样来构造多个子样本集,每个子样本集中可以包含重复的样本。对每个子样本集训练一个模型,然后取平均得到最后的集成结果。baggingbagging方法的主要目的是为了降低模型的var...转载 2019-12-30 15:14:37 · 271 阅读 · 0 评论 -
使用spark ml pipeline进行机器学习
一、关于spark mlpipeline与机器学习一个典型的机器学习构建包含若干个过程1、源数据ETL2、数据预处理3、特征选取4、模型训练与验证以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果。因此,对以上多个步骤、进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建...转载 2019-12-30 14:16:19 · 317 阅读 · 0 评论 -
SparkContext、SparkConf和SparkSession的初始化
SparkContext 和 SparkConf 任何Spark程序都是SparkContext开始的,SparkContext的初始化需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数。初始化后,就可以使用SparkContext对象所包含的各种方法来创建和操作RDD和共享变量。 val conf = new SparkConf().setMaster("ma...转载 2018-05-28 15:32:59 · 4463 阅读 · 0 评论 -
spark-submit使用及说明
一、命令 1.向spark standalone以client方式提交job。?1./spark-submit --master spark://hadoop3:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.3.0-hadoop2.3.0.jar--deploy...转载 2018-05-28 15:49:06 · 2116 阅读 · 0 评论 -
Spark-submit提交任务到集群
1 IDEA 打包示例代码参考AMPCamp2015之SparkSQL,开发环境使用idea。首先需要将程序打包成jar选择project structure --》artifacts ,由于集群已经有了运行依赖的jar包,打包时可以将这些jar包排除出去,以减小打包后的jar包的大小。点击ok,然后选择build --》build artifacts,SparkSQLTest --》build,...转载 2018-05-28 15:50:33 · 13901 阅读 · 0 评论 -
Spark编程指南V1.4.0(翻译)
Spark编程指南V1.4.0· 简介· 接入Spark· Spark初始化 · 使用Shell · 在集群上部署代码· 弹性分布式数据集 · 并行集合(Parallelized Collections) · 其他数据集 ...转载 2018-05-24 13:31:55 · 352 阅读 · 0 评论 -
Spark学习总结(一)
RDD及其特点1、RDD是Spark的核心数据模型,但是个抽象类,全称为Resillient Distributed Dataset,即弹性分布式数据集。2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;...转载 2018-05-31 14:10:25 · 71584 阅读 · 3 评论 -
spark出现task不能序列化错误的解决方法 org.apache.spark.SparkException: Task not serializable
出现“task not serializable"这个错误,一般是因为在map、filter等的参数使用了外部的变量,但是这个变量不能序列化。特别是当引用了某个类(经常是当前类)的成员函数或变量时,会导致这个类的所有成员(整个类)都需要支持序列化。解决这个问题最常用的方法有: 如果可以,将依赖的变量放到map、filter等的参数内部定义。这样就可以使用不支持序列化的类; 如果可以,将依...转载 2018-08-10 13:14:35 · 1268 阅读 · 0 评论 -
关于SparkMLlib的基础数据结构Spark-MLlib-Basics
此部分主要关于MLlib的基础数据结构1、本地向量MLlib的本地向量主要分为两种,DenseVector和SparseVector,顾名思义,前者是用来保存稠密向量,后者是用来保存稀疏向量,其创建方式主要有一下三种(三种方式均创建了向量(1.0, 0.0, 2.0): import org.apache.spark.mllib.linalg.{Vector, Vector...转载 2018-08-10 13:35:36 · 207 阅读 · 0 评论 -
Spark基本操作SparkSession,Dataset<Row>,JavaRDD<Row>
一、Spark创建1.创建SparkSession/*** local[*]表示使用本机的所有处理器创建工作节点* spark.driver.memory spark的驱动器内存* Spark2.2好像是需要最小2G*/SparkSession session = SparkSession.builder() .appName("sparkAnalysis").mast...转载 2018-08-10 13:38:37 · 9750 阅读 · 0 评论 -
快速理解Spark Dataset
1. 前言RDD、DataFrame、Dataset是Spark三个最重要的概念,RDD和DataFrame两个概念出现的比较早,Dataset相对出现的较晚(1.6版本开始出现),有些开发人员对此还不熟悉,本文重点引领快速理解Dataset。带着几个问题去阅读:1、DataFrame比RDD有哪些优点?2、DataFrame和Dataset有什么关系?3、有了DataFram...转载 2018-08-10 14:10:29 · 1664 阅读 · 1 评论 -
Spark中的键值对操作-scala
1.PairRDD介绍 Spark为包含键值对类型的RDD提供了一些专有的操作。这些RDD被称为PairRDD。PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口。例如,PairRDD提供了reduceByKey()方法,可以分别规约每个键对应的数据,还有join()方法,可以把两个RDD中键相同的元素组合在一起,合并为一个RDD。2.创建Pair RDD...转载 2018-08-10 14:12:53 · 863 阅读 · 0 评论 -
Spark MLlib实现的广告点击预测–Gradient-Boosted Trees
关键字:spark、mllib、Gradient-Boosted Trees、广告点击预测本文尝试使用Spark提供的机器学习算法 Gradient-Boosted Trees来预测一个用户是否会点击广告。训练和测试数据使用Kaggle Avazu CTR 比赛的样例数据,下载地址:https://www.kaggle.com/c/avazu-ctr-prediction/data数据...转载 2018-08-10 14:16:41 · 615 阅读 · 0 评论 -
Spark MLlib学习
1. 机器学习机器学习可以看做是一门人工智能的科学,该领域的主要研究对象是人工智能。机器学习利用数据或以往的经验,以此优化计算机程序的性能标准。机器学习强调三个关键词:算法、经验、性能,其处理过程如上图所示。在数据的基础上,通过算法构建出模型并对模型进行评估。评估的性能如果达到要求,就用该模型来测试其他的数据;如果达不到要求,就要调整算法来重新建立模型,再次进行评估。如此循环往复...转载 2018-08-10 14:22:58 · 4172 阅读 · 0 评论 -
深度学习笔记——基于传统机器学习算法(LR、SVM、GBDT、RandomForest)的句子对匹配方法
句子对匹配(Sentence Pair Matching)问题是NLP中非常常见的一类问题,所谓“句子对匹配”,就是说给定两个句子S1和S2,任务目标是判断这两个句子是否具备某种类型的关系。如果形式化地对这个问题定义,可以理解如下:意思是给定两个句子,需要学习一个映射函数,输入是两个句子对,经过映射函数变换,输出是任务分类标签集合中的某类标签。典型的例子就是Paraphrase任务,即要判断...转载 2018-08-10 14:49:22 · 2172 阅读 · 0 评论 -
spark中flatMap函数用法
说明在spark中map函数和flatMap函数是两个比较常用的函数。其中 map:对集合中每个元素进行操作。 flatMap:对集合中每个元素进行操作然后再扁平化。 理解扁平化可以举个简单例子val arr=sc.parallelize(Array(("A",1),("B",2),("C",3)))arr.flatmap(x=>(x._1+x._2)).foreach(pri...转载 2018-08-14 18:58:34 · 9202 阅读 · 0 评论 -
spark map flatMap flatMapToPair mapPartitions 的区别和用途
import akka.japi.Function2; import org.apache.spark.HashPartitioner; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api....转载 2018-08-14 19:11:00 · 667 阅读 · 0 评论 -
SPARK RDD JAVA API 用法指南
1.RDD介绍: RDD,弹性分布式数据集,即分布式的元素集合。在spark中,对所有数据的操作不外乎是创建RDD、转化已有的RDD以及调用RDD操作进行求值。在这一切的背后,Spark会自动将RDD中的数据分发到集群中,并将操作并行化。 Spark中的RDD就是一个不可变的分布式对象集合。每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。RDD可以包含Pyt...转载 2018-08-14 19:19:47 · 6404 阅读 · 0 评论 -
RDD的几种创建方式
RDD简介RDD是Spark的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集 RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上(分区即partition),从而让RDD中的数据可以被并行操作。(分布式的特性) RDD通常通过Hadoop上的文件,即HDFS文件,来进行创建;有时也可以...转载 2018-08-20 09:43:15 · 5905 阅读 · 0 评论 -
Apache Spark 2.0: 机器学习模型持久化
在即将发布的Apache Spark 2.0中将会提供机器学习模型持久化能力。机器学习模型持久化(机器学习模型的保存和加载)使得以下三类机器学习场景变得容易: 数据科学家开发ML模型并移交给工程师团队在生产环境中发布; 数据工程师把一个Python语言开发的机器学习模型训练工作流集成到一个Java语言开发的机器学习服务工作流; 数据科学家创建多个训练ML模型的作业,稍后需...转载 2018-08-20 10:17:39 · 370 阅读 · 0 评论 -
Spark函数详解系列--RDD基本转换
http://www.cnblogs.com/MOBIN/p/5373256.html摘要: RDD:弹性分布式数据集,是一种特殊集合 ‚ 支持多种来源 ‚ 有容错机制 ‚ 可以被缓存 ‚ 支持并行操作,一个RDD代表一个分区里的数据集 RDD有两种操作算子: Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一...转载 2018-08-20 10:30:08 · 314 阅读 · 0 评论 -
如何在Java应用里集成Spark MLlib训练好的模型做预测
前言昨天媛媛说,你是不是很久没写博客了。我说上一篇1.26号,昨天3.26号,刚好两个月,心中也略微有些愧疚。今天正好有个好朋友问,怎么在Java应用里集成Spark MLlib训练好的模型。在StreamingPro里其实都有实际的使用例子,但是如果有一篇文章讲述下,我觉得应该能让更多人获得帮助追本溯源记得我之前吐槽过Spark MLlib的设计,也是因为一个朋友使用了spark M...转载 2018-08-20 10:53:15 · 936 阅读 · 0 评论 -
关于spark的mllib学习总结(Java版)
本篇博客主要讲述如何利用spark的mliib构建机器学习模型并预测新的数据,具体的流程如下图所示: 加载数据对于数据的加载或保存,mllib提供了MLUtils包,其作用是Helper methods to load,save and pre-process data used in MLLib.博客中的数据是采用spark中提供的数据sample_libsvm_data.txt,其有一...转载 2018-08-20 11:03:54 · 1916 阅读 · 0 评论 -
spark RDD创建方式:parallelize,makeRDD,textFile
parallelize调用SparkContext 的 parallelize(),将一个存在的集合,变成一个RDD,这种方式试用于学习spark和做一些spark的测试scala版本? 1 def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0...转载 2018-08-31 09:19:10 · 3034 阅读 · 0 评论 -
Spark RDD使用详解2--RDD创建方式
RDD创建方式1)从Hadoop文件系统(如HDFS、Hive、HBase)输入创建。2)从父RDD转换得到新RDD。3)通过parallelize或makeRDD将单机数据创建为分布式RDD。4)基于DB(Mysql)、NoSQL(HBase)、S3(SC3)、数据流创建。从集合创建RDDparallelizedef parallelize[T](seq: Seq[T], ...转载 2018-08-31 09:20:18 · 1001 阅读 · 0 评论 -
Spark常用函数讲解之键值RDD转换
摘要:RDD:弹性分布式数据集,是一种特殊集合 ‚ 支持多种来源 ‚ 有容错机制 ‚ 可以被缓存 ‚ 支持并行操作,一个RDD代表一个分区里的数据集RDD有两种操作算子: Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住 了数据集的逻辑操作 Ation(执...转载 2018-08-31 09:22:13 · 213 阅读 · 0 评论 -
spark 中的RDD编程:基于Java api
1.RDD介绍: RDD,弹性分布式数据集,即分布式的元素集合。在spark中,对所有数据的操作不外乎是创建RDD、转化已有的RDD以及调用RDD操作进行求值。在这一切的背后,Spark会自动将RDD中的数据分发到集群中,并将操作并行化。 Spark中的RDD就是一个不可变的分布式对象集合。每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。RDD可以包含Pyt...转载 2018-08-31 10:48:10 · 1057 阅读 · 0 评论 -
Spark RDD中cache和persist的区别
转自:http://www.ithao123.cn/content-6053935.html通过观察RDD.scala源代码即可知道cache和persist的区别: def persist(newLevel: StorageLevel): this.type = { if (storageLevel != StorageLevel.NONE && newL...转载 2018-08-31 17:22:42 · 302 阅读 · 0 评论 -
SparkJavaAPI:join的使用
将一组数据转化为RDD后,分别创造出两个PairRDD,然后再对两个PairRDD进行归约(即合并相同Key对应的Value),过程如下图所示:代码实现如下: public class SparkRDDDemo { public static void main(String[] args){ SparkConf conf = new SparkC...转载 2018-08-31 17:24:42 · 1469 阅读 · 0 评论 -
Spark的RDD操作之Join大全
一、RDD的Join操作有哪些? (一)Join:Join类似于SQL的inner join操作,返回结果是前面和后面集合中配对成功的,过滤掉关联不上的。源代码如下: /** * Return an RDD containing all pairs of elements with matching keys in `this` and `other`. Each...转载 2018-08-31 17:33:06 · 1825 阅读 · 0 评论