![](https://img-blog.csdnimg.cn/20200504135428468.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【大数据】Spark-2.3.3
文章平均质量分 79
【大数据】Spark-2.3.3
北京小辉
余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据、云数据、用户画像、推荐算法。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇,软著【6】篇,专利【65】篇。
展开
-
Spark深入解读(一)---- 基本概念
目录一、Application二、Job三、DAG四、Stage五、Task六、TaskSet七、RDD八、dependency九、Shuffle一、Application使用SparkSubmit提交的个计算应用一个Application中可以触发多次Action,触发一次Action形成一个DAG,一个DAG对应一个Job一个Application中可以有一到多...原创 2020-02-22 23:34:19 · 721 阅读 · 0 评论 -
Spark深入解读(二)---- 工作流程
Spark工作流程1.使用Spark-submit提交代码至服务器上2.创建SparkContext,在SparkContext初始化的时候会创建DAGScheduler和TaskScheduler3.TaskScheduler会启动一个后台进程去集群Master注册Application,申请任务资源,比如CPU,内存等等4.Master接收注册请求后会利用自己的资源调度算法,在Spa...原创 2020-02-22 23:40:43 · 529 阅读 · 0 评论 -
Spark深入解读(三)---- 工作模式及角色
目录一、角色描述二、Local本地模式三、standalone模式四、spark on yarn 模式 1) Spark on yarn client模式 2) Spark on yarn cluster模式五、总结一、角色描述Application: Appl...原创 2020-02-23 00:35:04 · 2100 阅读 · 1 评论 -
Spark深入解读(四)---- 算子分类及功能描述
目录:一、简介二、Value型Transformation算子三、Key-Value型Transformation算子四、Actions算子————————————————————————————————————————–一、简介spark算子大致上可分三大类算子: 1、Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Value型的数据原创 2017-05-22 13:38:31 · 3692 阅读 · 0 评论 -
Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式
目录架构说明(standalone模式)架构说明(standalone模式)standalone模式是Spark自带的分布式集群模式,不依赖其他的资源调度框架搭建步骤下载spark安装包,下载地址:https://spark.apache.org/downloads.html上传spark安装包到Linux服务器上解压spark安装包tar -zxvf spar...原创 2020-03-18 15:47:49 · 545 阅读 · 1 评论 -
Spark深入解读(九)---- 窗口函数和API集合
目录一、窗口函数种类二、具体用法如下三、数据及程序四、结果展示一、窗口函数种类ranking 排名类analytic 分析类aggregate 聚合类Function TypeSQLDataFrame APIDescriptionRankingrankrankrank值可能是不连续的Rankingdense_rankdenseRank...原创 2019-12-21 15:36:30 · 601 阅读 · 0 评论 -
Spark深入解读(十)---- 存储原理--shuffle 过程
目录一、Spark Shuffle 的发展1.1、未优化的 HashShuffle1.2、优化后 HashShuffle1.3、Sort-Based Shuffle二、Spark Shuffle 中数据结构2.1、AppendOnlyMap2.2、ExternalAppendOnlyMap2.3、PartitionedAppendOnlyMap2.4、PartitionedPai...原创 2019-09-18 15:01:06 · 724 阅读 · 0 评论 -
Spark深入解读(十一)---- RDD、DataFrame和DataSet的区别
目录一、Spark RDD二、DataFrame三、DataSet一、Spark RDD优点编译时类型安全编译时就能检查出类型错误面向对象的编程风格直接通过类名点的方式来操作数据缺点序列化和反序列化的性能开销无论是集群间的通信, 还是IO操作都需要对对象的结构和数据进行序列化和反序列化.GC的性能开销频繁的创建和销毁对象, 势必会增加GCobject Run...原创 2019-09-18 15:45:11 · 358 阅读 · 0 评论 -
Spark深入解读(十二)---- 有向无环图DAG(代码及图解)
目录:1、有向无环图2、代码结构3、代码学习步鄹及方法4、重点代码讲解5、代码展现6、运行结果1、有向无环图在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。 性质:有向无环图的生成树个数等于入度非零的节点的入度积。 2、代码结构原创 2017-01-03 18:21:54 · 22252 阅读 · 1 评论 -
Spark2.3.3创建DataFrame的14种方式和源码解析(一)【全网最全】
目录一、数据源二、Maven的依赖三、创建DataFrame方法9种Case Class 创建DataFrameTuple 创建DataFrameJavaBean 创建DataFrameRow 创建DataFrameset集合 创建DataFramemap集合 创建DataFrameArray数组 创建DataFramemysql 创建DataFrameparquet 创...原创 2020-01-04 18:58:18 · 577 阅读 · 0 评论 -
Spark2.3.3创建DataFrame的14种方式和源码解析(二)【全网最全】
目录一、SparkSQL通过Hive创建DataFrame问题分析 问题一: 问题二: 问题三: 问题四: 问题五:...原创 2020-01-04 19:26:43 · 566 阅读 · 0 评论 -
Spark2.3.3创建DataFrame的14种方式和源码解析(三)【全网最全】
目录一、数据源二、SparkSQL通过Mysql创建DataFrame代码三、结果展示一、数据源CREATE TABLE student( id int not null primary key, name varchar(20), age int(20), city varchar(20), score double(20,2))ENGINE=InnoDB ...原创 2020-01-04 19:36:55 · 365 阅读 · 0 评论 -
Spark2.3.3创建DataFrame的14种方式和源码解析(四)【全网最全】
目录一、问题分析二、@BeanProperty分析三、Scala Class创建DataFrame代码四、结果展示一、问题分析 注:此处的普通类指的是scala中定义的非case class的类框架在底层将其视作java定义的标准bean类型来处理而scala中定义的普通bean类,不具备字段的java标准getters和sett...原创 2020-01-04 19:58:14 · 487 阅读 · 0 评论 -
Spark2.3.3创建DataFrame的14种方式和源码解析(五)【全网最全】
目录一、需求分析二、数据展示三、无头文件的CSV分析四、有头文件的CSV分析一、需求分析 将CSV文件转为DataFrame,其中CSV包括无头文件和有文件。二、数据展示无头文件的CSV1,张飞,21,北京,802,关羽,23,北京,823,赵云,20,上海,884,刘备,26,上海,835,曹操,30,深圳,90....原创 2020-01-04 20:42:52 · 561 阅读 · 0 评论 -
通过一条SQL分析SparkSQL执行流程(一)
本地连接集群运行Saprk程序两种方式目录1)通过Maven(简单一些,建议用这种)2)下载Saprk环境1)通过Maven 备注:java是1.8版本,scala是2.11.6版本 maven中加入的依赖如下: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</原创 2016-10-31 09:12:39 · 3060 阅读 · 0 评论 -
通过一条SQL分析SparkSQL执行流程(二)
package com.donewsimport scala.util.parsing.json.JSONobject Test { def regixJson(json:Option[Any]) =json match { case Some(map: Map[String, Any]) => map } def main(args: Array[String]): Unit原创 2016-11-22 10:18:40 · 7139 阅读 · 0 评论 -
通过一条SQL分析SparkSQL执行过程(三)
<!--Json --><dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier></dependency>package com.donews.data原创 2016-11-22 15:00:52 · 3052 阅读 · 0 评论 -
Spark图计算GraphX介绍及实例
目录一、GraphX介绍二、GraphX实现分析三、GraphX实例四、参考资料一、GraphX介绍1.1 GraphX应用背景 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求。 &nbs...原创 2020-02-17 18:55:15 · 844 阅读 · 1 评论 -
MapPartition和Map的区别
在Spark中有map和mapPartitions算子,处理数据上,有一些区别主要区别: map是对rdd中的每一个元素进行操作; mapPartitions则是对rdd中的每个分区的迭代器进行操作MapPartitions的优点:...原创 2019-11-15 16:01:48 · 721 阅读 · 3 评论 -
spark应用程序引用第三方的jar包(转载备用)
第一种方式操作:将第三方jar文件打包到最终形成的spark应用程序jar文件中应用场景:第三方jar文件比较小,应用的地方比较少第二种方式操作:使用spark-submit提交命令的参数: –jars要求:1、使用spark-submit命令的机器上存在对应的jar文件2、至于集群中其他机器上的服务需要该jar文件的时候,通过driver提供的一个http接口来获...原创 2018-09-12 14:26:39 · 4294 阅读 · 0 评论 -
Spark 1.6.1 单机安装配置
本文将介绍Apache Spark 1.6.1在单机的部署,与在集群中部署的步骤基本一致,只是少了一些master和slave文件的配置。1、Spark的安装准备Spark官网的文档 http://spark.apache.org/docs/latest/ 里是这样说的:Spark runs on Java 7+, Python 2.6+ and R 3.1原创 2016-06-01 21:37:14 · 3215 阅读 · 2 评论 -
spark自定义分区
目录一、需求二、代码展示三、数据展示四、结果展示五、三种分区方式介绍 1、默认分区方式(实际上是HashPartitioner) 2、HashPartitioner分区 3、RangePartitioner分区——————————————————————————————–一、需求 防止大量数据倾斜,自定义Partition的函数,map阶段使用元祖(i原创 2017-09-19 09:46:03 · 1448 阅读 · 3 评论 -
spark学习笔记总结
Spark简介spark 可以很容易和yarn结合,直接调用HDFS、Hbase上面的数据,和hadoop结合。配置很容易。spark发展迅猛,框架比hadoop更加灵活实用。减少了延时处理,提高性能效率实用灵活性。也可以与hadoop切实相互结合。spark核心部分分为RDD。Spark SQL、Spark Streaming、MLlib、GraphX、Spark R等核心组原创 2016-06-03 15:06:35 · 2116 阅读 · 0 评论 -
Dataframe加载数据的4种方法
第一种:加载json数据原始数据 {"name":"Michael"} {"name":"Andy", "age":30} {"name":"Justin", "age":19}加载数据val jsondf=sqlContext.jsonFile("hdfs://hadoop14:9000/yuhui/json/datajson.txt")第二种原创 2016-06-13 14:39:09 · 4234 阅读 · 0 评论 -
DataFrame自定义函数
我这里是一个简单的两个数相加,是为了取代sum聚合函数。官网: http://spark.apache.org/docs/latest/sql-programming-guide.html#udf-registration-moved-to-sqlcontextudf-java–scala第一、写函数/** * Created by silentwolf on 2016/7/12. */原创 2016-07-14 11:19:16 · 3254 阅读 · 0 评论 -
SparkSql中的ISNULL和CASE WHEN方法
元数据 data.json {“name”:”Yuhui”} {“name”:”lihui”, “age”:30} {“name”:”Justin”, “age”:19}people.json {“name”:”Yuhui”,”age”:29} {“name”:”lihui”, “age”:33} {“name”:”Leijiexu”, “age”:28}加载且建立临时表 val j原创 2016-07-11 10:59:28 · 16088 阅读 · 0 评论 -
Spark的一些问题
yarn资源申请不足,导致任务持续等待2016-09-20 16:49:25,657 [WARN ] 70 org.apache.spark.scheduler.cluster.YarnScheduler - Initial job has not accepted any resources; check your cluster UI to ensure that workers are re原创 2016-09-20 17:24:05 · 1003 阅读 · 2 评论 -
DataFrame:通过SparkSql将Json数据转为DataFrame
import java.text.DecimalFormatimport com.alibaba.fastjson.JSONimport com.donews.data.AppConfigimport com.typesafe.config.ConfigFactoryimport org.apache.spark.sql.{SaveMode, DataFrame, SQLContext}原创 2016-07-20 11:57:27 · 4352 阅读 · 0 评论 -
[编程语言]SparkTask未序列化(Task not serializable)问题分析
问题描述及原因分析 在编写Spark程序中,由于在map等算子内部使用了外部定义的变量和函数,从而引发Task未序列化问题。然而,Spark算子在计算过程中使用外部变量在许多情形下确实在所难免,比如在filter算子根据外部指定的条件进行过滤,map根据相应的配置进行变换等。为了解决上述Task未序列化问题,这里对其进行了研究和总结。 出现“org.apache.spark.转载 2016-11-16 16:27:06 · 4691 阅读 · 0 评论 -
Spark1.6.1集群环境搭建——Standalone模式HA
机器准备笔者有三台机器,左侧栏为ip,右侧为hostname,三台机器都有一个名为spark的用户。192.168.200.11 hadoop11192.168.200.12 hadoop12192.168.200.13 hadoop13安装scalahttp://blog.csdn.net/silentwolfyh/article/details/512970原创 2016-05-02 17:44:15 · 2517 阅读 · 0 评论