![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
那记忆微凉
大数据+云计算+区块链+微服务+机器视觉
展开
-
Spark2.X ML中Pipeline详解、特征转换和决策树分类算法的使用
Spark中有关机器学习的库已经在从MLlib往ML逐步迁移了,MLlib库也将在Spark 3.0后停止维护,所以我们需要尽快熟悉ML库。在Spark ML库中,核心数据对象由RDD变为了DataFrame,同时,ML库中有一些特征转换的方法,并提供了Pipeline这一工具,可以使用户很方便的将对数据的不同处理组合起来,一次运行,从而使整个机器学习过程变得更加易用、简洁、规范和高效。本文将...原创 2019-10-12 15:20:19 · 982 阅读 · 0 评论 -
spark基础之shuffle机制、原理分析及Shuffle的优化(很好很详细)
一 概述Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也直接决定了...原创 2018-09-11 11:02:52 · 2246 阅读 · 1 评论 -
Spark广播变量和累加器详解
一、概述在spark程序中,当一个传递给Spark操作(例如map和reduce)的函数在远程节点上面运行时,Spark操作实际上操作的是这个函数所用变量的一个独立副本。这些变量会被复制到每台机器上,并且这些变量在远程机器上的所有更新都不会传递回驱动程序。通常跨任务的读写变量是低效的,但是,Spark还是为两种常见的使用模式提供了两种有限的共享变量:广播变(broadcast variable...原创 2018-08-28 15:08:53 · 807 阅读 · 0 评论 -
正则化总结的比较好比较全面的文章
正则化技术广泛应用在机器学习和深度学习算法中,本质作用是防止过拟合、提高模型泛化能力。过拟合简单理解就是训练的算法模型太过复杂了,过分考虑了当前样本结构。其是防止过拟合的其中一种技术手段。在早期的机器学习领域一般只是将范数惩罚叫做正则化技术,而在深度学习领域认为:能够显著减少方差,而不过度增加偏差的策略都可以认为是正则化技术,故推广的正则化技术还有:扩增样本集、早停止、Dropout、集成学习...转载 2018-08-13 15:47:57 · 3730 阅读 · 1 评论 -
Spark机器学习中的正则化项的理解
正则化(Regularization)机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2...原创 2018-08-13 15:42:59 · 1129 阅读 · 0 评论 -
Spark Streaming结合 Kafka 两种不同的数据接收方式比较
DirectKafkaInputDStream 只在 driver 端接收数据,所以继承了 InputDStream,是没有 receivers 的在结合 Spark Streaming 及 Kafka 的实时应用中,我们通常使用以下两个 API 来获取最初的 DStream(这里不关心这两个 API 的重载):KafkaUtils#createDirectStream及KafkaUtils#cr...转载 2018-06-13 12:04:31 · 228 阅读 · 0 评论 -
SparkSQL将计算数据写入Mysql中
代码如下:package com.itunic.sqlimport java.util.Propertiesimport org.apache.spark.sql.{Row, SQLContext}import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}import org....原创 2019-10-10 16:40:28 · 1298 阅读 · 0 评论 -
spark2.4.4集成hive3.1.2遇到的一个坑HikariCP
Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "HikariCP" plugin to create a ConnectionPool gave an error : The connection pool plugin of type "HikariCP" was not found i...原创 2019-10-09 14:00:30 · 1924 阅读 · 0 评论 -
Hive On Spark环境部署
1.hive执行引擎Hive默认使用MapReduce作为执行引擎,即Hive on mr。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。默认情况下,Hive on Spark 在YARN模式下支持Sp...原创 2019-09-30 13:17:10 · 535 阅读 · 0 评论 -
Spark之线性回归分析
spark的机器学习库(MLlib)下有简单的回归分析方法,今天只说最简单的线性回归,spark提供有两个回归分析库(mllib和ml),我学习的时候在网上也查了不少资料,有一个奇怪的现象是网上关于spark回归分析的资料基本全是mllib,关于ml的基本没见到,根据官方文档我自己对两个库的方法都做了测试,发现mllib做出的结果不是很正确6,15,7,8,1,21,16,45,45,33,2...转载 2018-07-21 10:45:41 · 1768 阅读 · 1 评论 -
SparkStreaming实时计算的框架和执行过程
SparkStreaming 为每一个数据源启动对应的Reciver(接收器),接收器以任务的形式运行在应用的Executor(执行器)进程中,从输入源接收数据 ,把数据分组为小的批次(batch),保存为RDD。然后把数据复制到另一个Executor中备份,保障容错性。然后我们根据这框架来谈一谈SparkStreaming运行的具体流程:1、客户端提交作业后启动Driver,通过Driver来启...原创 2018-06-20 11:15:04 · 899 阅读 · 0 评论 -
编译Spark2.X源码的心得和注意事项
我这是用make-distribution.sh这个命令编译的。也是我推荐使用的,因为可以直接产生一个tgz包,其他的节点可以直接使用。建议打开make-distribution.sh,更改如下部分。报错:VERSION='ERROR: Cannot download zinc-0.3.9.tgz with cURL or wget; please install manually and try...原创 2018-06-26 22:08:20 · 656 阅读 · 1 评论 -
Spark报错:Initial job has not accepted any resources
警告信息:初始化job的时候,没有获取到任何资源,检查你的集群,确保workers已经被注册和有足够的内存资源。问题出现的可能原因:worker节点没有启动;你分配的内存资源超过worker节点的内存容量(就是内存溢出了)...原创 2018-06-26 15:00:51 · 1539 阅读 · 0 评论 -
Spark:报错- Cannot create directory /tmp/hive/hadoop/. Name node is in safe mode.
java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState': at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$reflect(SparkSessi...原创 2018-06-18 12:17:03 · 2190 阅读 · 0 评论 -
spark读取kafka数据 createStream和createDirectStream的区别
1、KafkaUtils.createDstream构造函数为KafkaUtils.createDstream(ssc, [zk], [consumer group id], [per-topic,partitions] ) 使用了receivers来接收数据,利用的是Kafka高层次的消费者api,对于所有的receivers接收到的数据将会保存在spark executors中,然后通过Spa...转载 2018-06-14 09:23:42 · 421 阅读 · 0 评论 -
spark源码action系列-foreach与foreachPartition
RDD.foreachPartition/foreach的操作在这个action的操作中:这两个action主要用于对每个partition中的iterator时行迭代的处理.通过用户传入的function对iterator进行内容的处理.首先我们先看看foreach的操作:在fureach中,传入一个function,这个函数的传入参数就是每个partition中,每次的foreach得到的一个...转载 2018-06-13 11:59:00 · 356 阅读 · 0 评论 -
算子优化之 foreachPartition
算子优化 foreachPartitionforeach的写库原理默认的foreach的性能缺陷在哪里?首先,对于每条数据,都要单独去调用一次function,task为每个数据,都要去执行一次function函数。如果100万条数据,(一个partition),调用100万次。性能比较差。另外一个非常非常重要的一点如果每个数据,你都去创建一个数据库连接的话,那么你就得创建100万次数据库连接。但...转载 2018-06-13 11:57:56 · 570 阅读 · 0 评论 -
Spark 2.0系列之SparkSession详解--很好的一篇文章:简单易懂
Spark2.0中引入了SparkSession的概念,它为用户提供了一个统一的切入点来使用Spark的各项功能,用户不但可以使用DataFrame和Dataset的各种API,学习Spark的难度也会大大降低。本文就SparkSession在Spark2.0中的功能和地位加以阐释。SparkSession的功能首先,我们从一个Spark应用案例入手:SparkSessionZipsE...转载 2018-04-27 11:46:52 · 1341 阅读 · 0 评论 -
在Spark-Shell下启用SQL报错:error: not found: value sqlContext解决方案
在Spark-Shell下启用SQL报错:error: not found: value sqlContex解决方案:在Spark2.X.X后,想要在Spark-shell中运行这个命令,你需要使用spark.sqlContext.sql()的形式。原创 2018-04-27 10:49:46 · 5189 阅读 · 1 评论 -
spark-sql启动报错:Error creating transactional connection factory
原因:我们在安装Hive时候,是用的MySQL作为元数据服务器的,因此再启动spark-sql时候需要对应的mysql的jar包的支持。解决方案:只需要在启动spark-sql的时候指定mysql-connector-java-5.1.26.jar位置即可。即:bin/spark-sql --driver-class-path /usr/local/hive/lib/mysql-connector...原创 2018-04-26 19:08:09 · 2011 阅读 · 0 评论 -
Spark的调度流程—详细、易懂、面试
先看一下Spark调度过程的流程图。这张图很不错:具体流程如下:1)DriverProgram即用户提交的程序定义并创建了SparkContext的实例,SparkContext会根据RDD对象构建DAG图,然后将作业(job)提交(runJob)给DAGScheduler。2)DAGScheduler对作业的DAG图进行切分成不同的stage[stage是根据shuffle为单位进行划分],每个...原创 2018-06-20 11:37:46 · 1226 阅读 · 0 评论 -
Spark操作Hive数据库的时候报错:Failed to write to table test1.hive_table in ErrorIfExists mode
Spark操作Hive数据库的时候报错:ERROR command.CreateDataSourceTableAsSelectCommand: Failed to write to table test1.hive_table in ErrorIfExists mode提示:count(1)的时候加一个别名。解决方法:即可。...原创 2018-07-03 09:56:02 · 1194 阅读 · 1 评论 -
spark读取Hive出错: Database 'test1' not found
错误:找不到数据库。Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database 'test1' not found;解决方案:加上enableHiveSupport()即可,否则默认不读hive-site.xml。val spark = SparkSessio...原创 2018-07-03 11:06:31 · 6051 阅读 · 4 评论 -
基于spark用线性回归(linear regression)进行数据预测(谋杀率)
分类和聚类算法很多,但是对数据进行精准预测的算法不是很多,这里介绍下最常用的线性回归例子spark官网上给出的例子不够全面,网上有些例子也不够具体,自己整理了一份我的开发环境是ubuntu+IDEA+spark+scala训练数据LR_data如下3615, 3624, 2.1, 69.05, 15.1, 41.3, 20, 50708365, 6315, 1.5, 69.3...转载 2018-07-21 10:43:26 · 3575 阅读 · 1 评论 -
Spark MLlib线性回归代码实现及结果展示
线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为一元线性回归,大于一个自变量情况的叫做多元线性回归。代码实现:import org.apache.spark.sql.SparkSessionimport org.apa...转载 2018-07-21 10:39:50 · 1751 阅读 · 0 评论 -
Spark-MLlib分类算法(逻辑回归)实战算法
一、数据来源及开发环境开发环境:为了方便代码管理这里使用了IDEA集成开发环境,单机进行代码调试感觉很方便嘛,主要环境与我前两篇博客中部署的环境一致。数据源:机器学习实在中数据的获取很重要,互联网上要找到类似数据非常容易。本实例使用的是Kaggle竞赛数据(相信学习机器学习的都知道这个比赛)。数据是关于网站点击数据,主要用于推荐的页面是短暂流行还是长久流行。下载地址,下载train.tsv...转载 2018-07-20 09:50:54 · 1597 阅读 · 1 评论 -
Spark ML包中的几种归一化方法总结
还不错!!!org.apache.spark.ml.feature包中包含了4种不同的归一化方法:Normalizer StandardScaler MinMaxScaler MaxAbsScaler有时感觉会容易混淆,借助官方文档和实际数据的变换,在这里做一次总结。原文地址:http://www.neilron.xyz/spark-ml-feature-scaler/0 ...转载 2018-07-20 09:36:50 · 1518 阅读 · 0 评论 -
RDD、DataFrame、DataSet关系以及相互转换(包含JAVA API)
Spark提供了三种主要的与数据相关的API:RDD DataFrame DataSet三者图示 下面详细介绍下各自的特点:RDD主要描述:RDD是Spark提供的最主要的一个抽象概念(Resilient Distributed Dataset),它是一个element的collection,分区化的位于集群的节点中,支持并行处理。 RDD的特性 分布式...转载 2018-07-19 21:03:41 · 2144 阅读 · 0 评论 -
spark报错:Caused by: java.util.regex.PatternSyntaxException: Unclosed group near index 1
Spark中使用val rdd2 =rdd.flatMap(_.replaceAll("(","").replaceAll(")",""))报错:解决方案:报错的原因是(引起的解决方法很简单,对于字符'(',使用 \\( 或 [(] 即可。因为在正则表达式中,有个“捕获组”的概念,其使用了小括号;因此分析,当正则表达式解析到左括号时,没有发现对应的右括号,从而报错。...原创 2018-07-17 21:26:28 · 2979 阅读 · 1 评论 -
Spark之标签和索引的转化:StringIndexer,IndexToString,VectorIndexer
Spark的机器学习处理过程中,经常需要把标签数据(一般是字符串)转化成整数索引,而在计算结束又需要把整数索引还原为标签。这就涉及到几个转换器:StringIndexer、 IndexToString,OneHotEncoder,以及针对类别特征的索引VectorIndexer。StringIndexer StringIndexer是指把一组字符型标签编码成一组标签索引,索引的范围为0到...转载 2018-07-11 17:51:21 · 1408 阅读 · 0 评论 -
SparkSql报错:metastore.ObjectStore: Version information found in metastore differs 2.3.0 from expected
Spark操作sparkSql报错:metastore.ObjectStore: Version information found in metastore differs 2.3.0 from expected schema version 1.2.0. Schema verififcation is disabled hive.metastore.schema.verification so...原创 2018-07-10 11:43:21 · 4163 阅读 · 1 评论 -
IDEA中使用SparkSQL连接Hive数据库报错:找不到表Table or view 'emp' not found
错误信息:Exception in thread "main" org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'emp' not found in database 'test1';解决方案:需要将hive-site.xml这个文件拷贝到resource下。问题解决!!...原创 2018-07-03 11:11:30 · 8572 阅读 · 4 评论 -
运行Spark程序报错:Error:scalac:error while loading JUnit4 , Scala signature JUnit4 has wrong version
问题详情 当我们在运行程序时,出现Error:scalac:error while loading JUnit4 , Scala signature JUnit4 has wrong version,见下图。 原因所在 是版本冲突吧 ,juint的这个包你用的是什么 ,一般都用3.8.x吧 在Scala IDE...原创 2019-07-23 09:22:54 · 447 阅读 · 0 评论