![](https://img-blog.csdnimg.cn/20201209160804122.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spark
文章平均质量分 62
大数据核心知识点哦 星星之火 可以燎原
LBJ_小松鼠
这个作者很懒,什么都没留下…
展开
-
关于Spark中数据倾斜的几种好的解决方案
前言本文是介绍的是开发spark极其核心的地方,可以说懂得解决spark数据倾斜是区分一个spark工程师是否足够专业的标准,在面试中以及实际开发中,几乎天天面临的都是这个问题。原理以及现象先来解释一下,出现什么现象的时候我们认定他为数据倾斜,以及他数据倾斜发生的原理是什么?比如一个spark任务中,绝多数task任务运行速度很快,但是就是有那么几个task任务运行极其缓慢,慢慢的可能就接着报内存溢出的问题了,那么这个时候我们就可以认定他是数据倾斜了。接下来说一下发生数据倾斜的底层理论,转载 2021-02-28 13:19:21 · 304 阅读 · 0 评论 -
SparkSQL底层执行的原理详解(面试必备)
1. RDD 和 SparkSQL 运行时的区别查看执行计划----------------------explainRDD的运行流程SparkSQL程序运行流程和 RDD 不同, SparkSQL 的 Dataset 和 SQL 并不是直接生成计划交给集群执行, 而是经过了一个叫做 Catalyst 的优化器, 这个优化器能够自动帮助开发者优化代码也就是说, 在 SparkSQL 中, 开发者的代码即使不够优化, 也会被优化为相对较好的形式去执行为什么 SparkSQL 提供了原创 2021-01-28 13:23:35 · 2121 阅读 · 0 评论 -
SparkSQL的开窗函数
1. 简介开窗函数简介:开窗函数是为了既显示聚集前的数据,又显示聚集后的数据。即在每一行的最后一列添加聚合函数的结果。窗用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用 GROUP BY 子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。聚合函数和开窗函数区别:聚合函数是将多行变成一行,count,avg…开窗函数是将一行变成多行;聚合函数如果要显示其他的列必须将列加入到group by中开窗函数可以不使用group by,直接将原创 2021-01-26 17:08:09 · 512 阅读 · 0 评论 -
SparkSQL重点知识之自定义UDF函数
简介: 无论Hive还是SparkSQL分析处理数据时,往往需要使用函数,SparkSQL模块本身自带很多实现公共功能的函数,在org.apache.spark.sql.functions中。SparkSQL与Hive一样支持定义函数:UDF和UDAF,尤其是UDF函数在实际项目中使用最为广泛。1. SparkSQL与Hive的自定义函数对比Hive的三种自定义函数:第一种:UDF(User-Defined-Function) 函数一对一的关系,输入一个值经过函数以后输出一个值;在Hive原创 2021-01-26 12:04:13 · 325 阅读 · 0 评论 -
SparkCore的RDD创建方式详解
将数据封装到RDD集合中主要有两种方式:并行化本地集合(Driver Program中)引用加载外部存储系统(如HDFS、Hive、HBase、Kafka、Elasticsearch等)数据集RDD创建的三种方式:前两种:从创建的scala集合中创建val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8))或者val rdd4 = sc.makeRDD(List(1,2,3,4,5,6,7,8))最后一种: 由外部存储文件创建包括本地的文件系统原创 2021-01-23 19:37:51 · 169 阅读 · 0 评论 -
SparkCore超详细的RDD算子操作
前言: 在开发并行程序时,可以利用类似 Fork/Join 的框架将一个大的任务切分成细小的任务,每个小任务模块之间是相互独立的,可以并行执行,然后将所有小任务的结果汇总起来,得到最终的结果。hadoop的Map和Reduce操作操作就是利用了这一思想,通过 map 操作让不同的集群节点并行计算,之后通过 reduce 操作将结果整合起来得到最终输出。Spark算子简介: 对于 Spark 处理的大量数据,先将数据切分放入RDD这一数据结构,我们开发就利用一些算子操作丶转换RDD操作调度集群资源原创 2021-01-23 18:02:51 · 265 阅读 · 0 评论 -
关于Spark入门的第一个wordcount代码详解
简介: 学习计算引擎(MapReduce,Hive,Spark,Flink)等,wordcount案例都会是我们接触的要第一个Demo下面就Spark学习的wordcount案例进行一个详解如下图:代码:import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * @author liu a fu * @date 2021/1/11 0011 22:04 * @version 1原创 2021-01-20 15:15:16 · 435 阅读 · 0 评论 -
SparkSQL的多种数据源(MySQL和数据带头信息)的读写
简介: 在SparkSQL模块,提供一套完成API接口,用于方便读写外部数据源的的数据(从Spark 1.4版本提供),框架本身内置外部数据源:在Spark 2.4版本中添加支持Image Source(图像数据源)和Avro Source。带头信息的:import org.apache.spark.sql.{DataFrame, SparkSession}/** * @author liu a fu * @date 2021/1/18 0018 * @version 1.0 * @原创 2021-01-19 11:59:20 · 329 阅读 · 0 评论 -
SparkSQL的两种方式实现WordCount案例代码
import org.apache.spark.SparkConfimport org.apache.spark.sql.{Dataset, SparkSession}/** * @author liu a fu * @date 2021/1/17 0017 * @version 1.0 * @DESC SQL 和 DSL 两种方式实现wordcount案例 * 1-准备SparkSession的环境 * 2-读取文件 *原创 2021-01-19 10:44:10 · 1041 阅读 · 1 评论 -
SparkSQL实现RDD转化为DataFrame的2种方式详解
简介: Spark官网提供了两种方法来实现从RDD转换得到DataFrame第一种方法是利用反射机制,推导包含某种类型的RDD,通过反射将其转换为指定类型的DataFrame,适用于提前知道RDD的schema。第二种方法通过编程接口与RDD进行交互获取schema,并动态创建DataFrame,在运行时决定列及其类型。写代码的三种方式:第1种:指定列名添加Schema第2种:通过StructType指定Schema第3种:编写样例类,利用反射机制推断Schema指定列名添加Schem原创 2021-01-19 10:24:49 · 948 阅读 · 0 评论 -
SparkSQL的数据结构和代码初体验
1.SparkSQL的数据结构1.3版本 DataFrame1.6版本 DataSet2.0版本 DataFrame = DataSet[ROW]注意: ROW: DataFrame中每条数据封装在Row中,Row表示每行数据2. SparkSQL的代码初体验import org.apache.spark.SparkContextimport org.apache.spark.sql.{Dataset, SparkSession}/** * @author liu a fu原创 2021-01-19 09:27:34 · 261 阅读 · 0 评论 -
SparkSQL和Hive集群整合详解
简介: 代码谁都会敲,关键是要逻辑要清楚1-为什么出现SparkOnHive(SparkSQL)?1-本质上SparkOnHive为了解决Hive计算的速度慢的问题2-现在在工业场景中更多的离线分析都是基于Hive+Spark的整合2-注意:SparkOnHive仅仅使用了Hive的元数据的信息,其他都是用spark的技术需要将hive的hive-site.xml拷贝到spark/conf中实现spark知晓hive的元数据信息、3-步骤:1-原理:需要整合Hive的元数据的信息,启原创 2021-01-18 18:49:16 · 536 阅读 · 0 评论 -
SparkSQL之RDD丶DataFrame丶DataSet介绍
1. 首先什么是SparkSQL?Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。有多种方式去使用Spark SQL,包括SQL、DataFrames API和Datasets API。但无论是哪种API或者是编程语言,它们都是基于同样的执行引擎它是将Spark SQL转换成RDD,然后提交到集群中去运行,执行效率非常快!2. SparkSQL的几大特性:易整合: 将sql查询与spark程序无缝混合,原创 2021-01-17 14:50:39 · 396 阅读 · 0 评论 -
SparkBase中提交任务的参数以及main代码执行过程详解
关于Spark的提交参数官网链接官网截图: 多看英文圆周率案例:SPARK_HOME=/export/server/spark${SPARK_HOME}/bin/spark-submit \--master yarn \--deploy-mode client \--driver-memory 512m \--executor-memory 512m \--num-executors 1 \--total-executor-cores 2 \--class org.apac原创 2021-01-13 15:08:15 · 353 阅读 · 0 评论 -
Spark on yarn的两种模式详解(这个很重要哦)
简介: 当一个Spark应用提交到集群上运行时,应用架构包含了两个部分Driver Program(资源申请和调度Job执行)Executors(运行Job中Task任务和缓存数据),两个都是JVM Process进程1: Driver程序运行的位置可以通过–deploy-mode 来指定:明确: Driver指的是The process running the main() function of the application and creating the SparkContext运原创 2021-01-13 12:55:20 · 2220 阅读 · 0 评论 -
Spark框架的整体介绍
前言: 工欲利其器,必先固其理. 勤学苦练 天道酬勤思考:究竟什么是数据和大数据再探讨大数据框架如何完成项目搭建为什么有Hadoop?Hadoop1.x和2.x以及现在3.X变化?为什么有产生了Spark?Spark介绍:Spark是一个开源的类似于Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Spark中的Job中间输出和结果可以保存在原创 2021-01-12 08:16:39 · 882 阅读 · 0 评论