大数据Spark专栏
文章平均质量分 69
栗子呀!
这个作者很懒,什么都没留下…
展开
-
Spark解决的问题与体系结构
Spark解决的问题与体系结构1、Spark解决的问题:2.Spark的API3.完整作业描述4.spark 体系架构1、Spark解决的问题:– 最大化利用内存cache (采用该多线程的方式)– 中间结果放内存,加速迭代(内存计算下Spark比MapReduce约快100倍)– 某结果集放内存,加速后续查询和处理,解决运行慢的问题– 更丰富的API(解决API单一问题)– Transfomation变换的api,比如map可对每一行做变换,filter过滤出符合条件的行等,这些API实原创 2021-01-16 09:50:21 · 457 阅读 · 0 评论 -
Spark的RDD概要&DAG概述
Spark的RDD概要&DAG概述1.RDD: 弹性分布式数据集(相当于集合)2.RDD对应HDFS关系图3.DAG概要1.RDD: 弹性分布式数据集(相当于集合)弹性:RDD的数据默认是存放在内存中,但是内存资源存在不足的情况,spark会将RDD数据写入磁盘(内存和磁盘切换)容错:如果任务执行失败,可以自动从失败节点进行恢复,由于某个节点宕机了导致数据丢失,RDD会根据自己的数据来源重新计算一遍,计算失败的partition的数据基于血缘关系:代表具体的任务的来龙去脉,映射hive 表是原创 2021-01-16 09:45:16 · 1297 阅读 · 0 评论 -
Spark核心RDD详述
Spark核心RDDSpark的核心:RDD特性:RDD的关键特征:RDD创建方式温馨提示:工作中已经很少使用RDD,一般直接使用dfSpark的核心:Spark任务来说,最终的目标是Action(save、collect…)①Spark的核心是建立在统一的抽象弹性分布式数据集(Resiliennt Distributed Datasets ,RDD)之上的,这使得Spark的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理②RDD(Resilient Distributed Da原创 2021-01-16 09:36:32 · 176 阅读 · 0 评论 -
Spark编写UDF函数案例
Spark编写UDF函数案例一、前述二、UDF函数需求:将orders表中 order_dow和order_number进行求和一、前述SparkSql中自定义函数包括UDF和UDAFUDF:一进一出 UDAF:多进一出 (联想Sum函数)二、UDF函数UDF:用户自定义函数,user defined function* 根据UDF函数参数的个数来决定是实现哪一个UDF UDF1,UDF2。。。。UDF1xxx* UDF1 传一个参数 UDF2传两个参数。。。。。orders表+-原创 2021-01-16 09:02:49 · 853 阅读 · 0 评论 -
SparkContext详述
SparkContext:官方解释:SparkContext是spark功能的主要入口。其代表与spark集群的连接,能够用来在集群上创建RDD、累加器、广播变量。每个JVM里只能存在一个处于激活状态的SparkContext,在创建新的SparkContext之前必须调用stop()来关闭之前的SparkContext。sparkContext在Spark应用程序的执行过程中起着主导作用,它负责与程序和spark集群进行交互,包括申请集群资源、创建RDD、accumulators及广播变量等。spar原创 2021-01-15 23:29:16 · 3209 阅读 · 0 评论 -
Spark Conf配置用法
Spark 2.0.0在Spark2.0之后,Spark Session也是Spark 的一个入口, 为了引入dataframe和dataset的API,同时保留了原来SparkContext的functionality,如果想要使用 HIVE,SQL,Streaming的API, 就需要Spark Session作为入口。SparkSession spark = SparkSession.builder().appName("demo_spark").enableHiveSupport().ge原创 2021-01-15 23:26:53 · 2767 阅读 · 0 评论 -
Spark RDD的运行机制 &工作节点分布关系
1.分区及分区与工作结点(Worker Node)的分布关系• 通俗点来讲,可以将 RDD 理解为一个分布式对象集合,本质上是一个只读的分区记录集合。每个 RDD可以分成多个分区,每个分区就是一个数据集片段。一个 RDD 的不同分区可以保存到集群中的不同结点上,从而可以在集群中的不同结点上进行并行计2.RDD 执行过程:RDD 的典型的执行过程如下:读入外部的数据源(或者内存中的集合)进行 RDD 创建;RDD 经过一系列的 “转换” 操作,每一次都会产生不同的 RDD,供给下一个转换使用;最后一原创 2021-01-14 23:45:13 · 497 阅读 · 0 评论 -
spark之kryo序列化及其使用
spark之kryo序列化spark之kryo 序列化Spark 中使用 Kryo序列化中文切词案例:spark之kryo 序列化1.定义:把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。通俗地说序列化就是把内存(jvm)中一个对象的状态通过网络传输,或者保存到磁盘上,反序列化与之相反。2.spark中的序列化那么对象以何种形式进行传输性能更好呢?在spark2.0+版本的官方文档中提到:spark默认提供了两个序列化库:Java自身的序列化和Kry原创 2021-01-14 23:35:17 · 1454 阅读 · 0 评论 -
Spark&MapReduce的区别、多线程&多进程的区别
Spark&MapReduce的区别、多线程&多进程的区别1.spark与hadoop区别:2.Spark多线程运行, MR多进程运行3.MR存在的问题:4.线程和进程的区别:1.spark与hadoop区别:本质:主要看是否进行磁盘的转换hadoop:因为需要partition所以需要进行磁盘的转换存储spark:则不需要这个2.Spark多线程运行, MR多进程运行多线程:因此spark作业适合于低延迟类型的作业多进程:方便控制资源,进程是一个独享的空间,但是启动比较费时间原创 2021-01-14 23:30:21 · 537 阅读 · 0 评论 -
Spark DataFrame&RDD案例实现
Spark DataFrame&RDD案例实现1.DataFram类型2.需求:将orders表中days_since_prior_order中的空置(" ")转换成0idea中快捷键2.每个用户平均购买订单的间隔周期3.每个用户的总订单数量(分组)4.每个用户购买的product商品去重后的集合数据4.每个用户总商品数量以及去重后的商品数量(distinct count)需求:合并“去重后集合的数据”和“去重后的商品数量” 统计逻辑5.每个用户购买的平均每个订单的商品数量(hive已经实现过了)原创 2021-01-14 23:25:33 · 421 阅读 · 0 评论 -
Spark实现WordCount案例
RDD操作实现1.文本文件:方式一:没用正则处理的方式二:添加正则表达式方式三:利用sortBy()进行排序Spark sql实现导入隐式转换createOrReplaceTempView使用1.文本文件:Preface“The Forsyte Saga” was the title originally destined for that part of it which is called “The Man of Property”; and to adopt it for the collec原创 2021-01-14 22:54:05 · 373 阅读 · 0 评论 -
Spark RDD 宽依赖&窄依赖
Spark RDD 宽依赖&窄依赖1.窄依赖2.宽依赖:3.阶段的划分4.宽依赖和窄依赖的作用:1.窄依赖每一个父RDD的Partition最多被子RDD的一个Partition使用 (一对一的关系)常见算子:map flatmap filter union sample 等等2.宽依赖:指的是多个子RDD的Partition会依赖同一个父RDD的Partition (一对多的关系)常见算子:groupByKey reduceByKey sortByKey join 等等对于窄依赖的原创 2021-01-14 22:21:56 · 1086 阅读 · 0 评论 -
Spark的三种运行模式
Spark三种运行模式1.Spark运行模式:2.验证Spark三种模式代码1.Spark运行模式:①Local(也称单节点模式):常用于开发和学习./spark-shell - -master local[n] ,n代表线程数②Standalone(集群模式)(应用较少)独立模式,类似MapReduce 1.0所采取的模式,完全由内部实现容错性和资源管理③Spark on Yarn(两种模式集群模式) :Yarn Client 与 Yarn Cluster3.1 Yarn Client:原创 2021-01-14 22:06:46 · 2412 阅读 · 0 评论 -
Spark 调优
Spark调优一、Spark资源参数调优二、开发调优**调优思路:**优先使用参数调优,如果参数调优不能满足我们的业务场景,这里就要涉及到代码调优一、Spark资源参数调优• num-executors:该作业总共需要多少executor进程执行– 建议:每个作业运行一般设置50~100个左右较合适• executor-memory:设置每个executor进程的内存, num-executors* num- executors代表作业申请的总内存量(尽量不要超过最大总内存的1/3~1/2)–原创 2021-01-14 21:59:55 · 125 阅读 · 0 评论 -
Spark在集群上执行代码案例(中文切词)
java的切词使用案例(Demo)@Testpublic void testDemo() { JiebaSegmenter segmenter = new JiebaSegmenter(); String[] sentences = new String[] {"这是一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。", "我不喜欢日本和服。", "雷猴回归人间。", "工信处女干事每月经过下属科室都要亲口原创 2021-01-14 21:46:02 · 787 阅读 · 0 评论 -
Spark session 深入理解
Spark sessionSpark session 深入理解创建SparkSessionBuilder 的方法如下:设置参数读取元数据读取数据使用SparkSQL存储/读取Hive表下图是 SparkSession 的类和方法Spark session 深入理解在Spark1.6中我们使用的叫Hive on spark,主要是依赖hive生成spark程序,有两个核心组件SQLcontext和HiveContext。这是Spark 1.x 版本的语法//set up the spark confi原创 2021-01-14 21:37:50 · 2574 阅读 · 0 评论 -
Spark中DataFrame 基本操作函数
DataFrame的基本操作函数Action 操作1、 collect()返回值是一个数组,返回dataframe集合所有的行2、 collectAsList()返回值是一个java类型的数组,返回dataframe集合所有的行3、 count()返回一个number类型的,返回dataframe集合的行数4、 describe(cols: String*)返回一个通过数学计算的类表值(count, mean, stddev, min, andmax),这个可以传多个参数,原创 2021-01-13 10:38:16 · 1330 阅读 · 0 评论