自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

happy-vicky的博客

走出自己的舒适区,你会发现外面比原来还TM安逸!

  • 博客(29)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spark(三)-- SparkSQL扩展(数据操作) -- Column(二)

目录8.3 Column 对象8.3.1 列的创建8.3.2 列的别名和转换8.3.3 添加列8.3.4 其它8.3 Column 对象导读Column 表示了 Dataset 中的一个列, 并且可以持有一个表达式, 这个表达式作用于每一条数据, 对每条数据都生成一个值, 之所以有单独这样的一个章节是因为列的操作属于细节, 但是又比较常见, 会在很多算子中配合出现...

2019-09-30 16:41:04 2448

原创 Spark(三)-- SparkSQL扩展(数据操作) -- 转换操作(一)

目录8. Dataset (DataFrame) 的基础操作8.1 有类型操作8.1.1 转换类型的操作8.1.2 过滤类型的操作8.1.3 集合类型的操作8.1.4 切分类型的操作8.1.5 排序类型的操作8.1.6 分区类型的操作8.1.7 去重类型的操作8.1.8 集合类型的操作8.2 无类型操作8.2.1 选择类型的操作8.2.2 剪切类...

2019-09-30 16:09:31 891

原创 Spark(三)-- SparkSQL扩展(数据读写) -- JDBC(四)

7.6 JDBC导读 通过SQL操作MySQL的表 将数据写入MySQL的表中 (1)准备MySQL环境在使用SparkSQL访问MySQL之前, 要对MySQL进行一些操作, 例如说创建用户, 表和库等 Step 1: 连接MySQL数据库 在MySQL所在的主机上执行如下命令 mysql -u root -p...

2019-09-26 10:31:57 894

原创 Spark(三)-- SparkSQL扩展(数据读写) -- 访问Hive(三)

7.5 访问 Hive导读 整合SparkSQL和Hive, 使用Hive的MetaStore元信息库 使用SparkSQL查询Hive表 案例, 使用常见HiveSQL 写入内容到Hive表 7.5.1 SparkSQL 整合 Hive导读 开启Hive的MetaStore独立进程 整合...

2019-09-26 09:42:57 538

原创 Spark(三)-- SparkSQL扩展(数据读写) -- 读写 Parquet、Json 格式文件(二)

7.3 读写 Parquet 格式文件目标 理解Spark读写Parquet文件的语法 理解Spark读写Parquet文件的时候对于分区的处理 什么时候会用到Parquet?在ETL中,Spark经常扮演T的职务, 也就是进行数据清洗和数据转换.为了能够保存比较复杂的数据, 并且保证性能和压缩率, 通常使用Parquet...

2019-09-26 09:30:15 1547

原创 Spark(三)-- SparkSQL扩展(数据读写) --DataFrameReader和DataFrameWriter(一)

7.1 初识 DataFrameReader目标理解DataFrameReader的整体结构和组成SparkSQL的一个非常重要的目标就是完善数据读取, 所以SparkSQL中增加了一个新的框架, 专门用于读取外部数据源, 叫做DataFrameReader @Test def reader1() : Unit = { //1.创建SparkSess...

2019-09-26 09:05:51 4224 1

原创 Spark(三)-- SparkSQL(三) -- Dataset和DataFrame

目录4. Dataset 的特点4.1 Dataset是什么?4.2 即使使用Dataset的命令式API, 执行计划也依然会被优化4.3 Dataset的底层是什么?4.4 可以获取Dataset对应的RDD表示5. DataFrame 的作用和常见操作5.1 DataFrame是什么?5.2 通过隐式转换创建DataFrame5.3 通...

2019-09-23 10:09:52 439

原创 Spark(三)-- SparkSQL(二) -- Catalyst 优化器

目录3. Catalyst 优化器3.1 RDD 和 SparkSQL 运行时的区别3.2 Catalyst3. Catalyst 优化器目标 理解SparkSQL和以RDD为代表的SparkCore最大的区别 理解优化器的运行原理和作用 3.1 RDD 和 SparkSQL 运行时的区别RDD的运行流程大致运行步骤先将...

2019-09-23 09:51:12 769

原创 Spark(三)-- SparkSQL(一) -- 初识

目录1. SparkSQL 是什么1.1 SparkSQL 的出现契机数据分析的方式HiveSharkSparkSQL1.2 SparkSQL 的适用场景结构化数据半结构化数据2. SparkSQL 初体验2.1 RDD 版本的 WordCount2.2 命令式 API 的入门案例SparkSessionDataFrame & Dat...

2019-09-23 09:15:23 1047

原创 Spark(二)-- RDD 的分布式共享变量(八) -- 广播变量(二)

目录7.2 广播变量7.2.1 广播变量的作用7.2.2 广播变量的API7.2.2.1 使用广播变量的一般套路7.2.2.2 使用value方法的注意点7.2.2.3 使用destroy方法的注意点7.2.3 广播变量的使用场景7.2.4 扩展7.2 广播变量目标 理解为什么需要广播变量, 以及其应用场景 能够通过代码使用广播变量...

2019-09-19 09:31:32 572

原创 Spark(二)-- RDD 的分布式共享变量(八) -- 累加器(一)

7.1. 累加器一个小问题var count = 0val config = new SparkConf().setAppName("ip_ana").setMaster("local[6]")val sc = new SparkContext(config)sc.parallelize(Seq(1, 2, 3, 4, 5)) .foreach(count += _)p...

2019-09-19 09:28:10 415

原创 Spark(二)-- 闭包(七)

什么是闭包?闭包是一个必须要理解, 但是又不太好理解的知识点, 先看一个小例子/** * 闭包相关 */class Closure { /** * 编写一个高阶函数,在函数内要有一个变量,返回一个函数,用过这个变量完成一个计算 */ @Test def test():Unit ={ val f: Int => Double = clo...

2019-09-19 09:20:55 197

原创 Spark(二)-- Spark 底层逻辑 (六) -- Shuffle 过程(四)

目录6.4 Shuffle 过程6.4.1 Shuffle过程的组件结构6.4.2 有哪些ShuffleWriter?6.4.3 SortShuffleWriter的执行过程6.4 Shuffle 过程导读本章节重点是介绍Shuffle的流程, 因为根据ShuffleWriter的实现不同, 其过程也不同, 所以前半部分根据默认的存储引擎SortSh...

2019-09-19 09:14:11 292

原创 Spark(二)-- Spark 底层逻辑 (六) -- 调度过程(三)

目录6.3 调度过程6.3.1 逻辑图(1)逻辑图如何生成(2)逻辑图是什么, 干啥用6.3.2 物理图6.3.3 Job是什么 ?(1)Job什么时候生成 ?(2)Job是什么 ?6.3.4 Job和Stage的关系(1)为什么Job需要切分 ?(2)如何切分 ?(3)问题一: 执行顺序(4)问题二: 串行还是并行(5)总结...

2019-09-19 08:59:01 141

原创 Spark(二)-- Spark 底层逻辑 (六) -- 物理执行图生成(二)

目录6.2 物理执行图生成6.2.1 物理图的作用是什么?问题一: 物理图的意义是什么?问题二: 如果要确定如何运行的问题, 则需要先确定集群中有什么组件?问题三: 物理图的生成需要考虑什么问题?6.2.2 谁来计算 RDD ?问题一: RDD 是什么, 用来做什么 ?问题二: 谁来计算 ?问题三: Task 该如何设计 ?6.2.3 如何划分阶段 ?6...

2019-09-18 09:34:06 490

原创 Spark(二)-- Spark 底层逻辑 (六) -- 逻辑执行图生成(一)

目录6.1 逻辑执行图生成6.1.1 RDD 的生成textFile算子的背后map算子的背后flatMap算子的背后6.1.2 RDD 之间的依赖关系什么是RDD之间的依赖关系?reduceByKey算子会生成ShuffledRDD整体上的流程图6.1.3 RDD 之间的依赖关系详解窄依赖宽依赖如何分辨宽窄依赖 ?6.1.4 ...

2019-09-17 16:22:30 575 1

原创 Spark(二)-- Spark 底层逻辑 (六) -- 简介

6. Spark 底层逻辑 -- 简介导读 从部署图了解Spark部署了什么, 有什么组件运行在集群中 通过对WordCount案例的解剖, 来理解执行逻辑计划的生成 通过对逻辑执行计划的细化, 理解如何生成物理计划 如无特殊说明, 以下部分均针对于 Spark Standalone 进行介绍通过wordCount案例来从“部署情况”、“逻辑执行...

2019-09-17 10:03:02 293

原创 Spark(二)-- SparkCore扩展 (五) -- Checkpoint

5. Checkpoint目标 Checkpoint 的作用 Checkpoint 的使用 5.1 Checkpoint 的作用Checkpoint 的主要作用是斩断 RDD 的依赖链, 并且将数据存储在可靠的存储引擎中, 例如支持分布式存储和副本机制的 HDFS.Checkpoint 的方式 可靠的将数据存储在可靠的存储引擎中, 例如 HDFS ...

2019-09-16 09:29:56 353

原创 Spark(二)-- SparkCore扩展 (四) -- 缓存

目录4. 缓存4.1 缓存的意义使用缓存的原因 - 多次使用 RDD使用缓存的原因 - 容错4.2 缓存相关的 API可以使用cache方法进行缓存也可以使用 persist 方法进行缓存4.3 缓存级别4. 缓存概要 缓存的意义 缓存相关的 API 缓存级别以及最佳实践 4.1 缓存的意义使用缓存的原因 - 多次...

2019-09-16 09:21:36 308

原创 Spark(二)-- SparkCore扩展 (三) -- RDD 的 Shuffle 和分区

目录3.RDD 的 Shuffle 和分区3.1 RDD 的分区操作查看分区数创建 RDD 时指定分区数3.2 RDD 的 Shuffle 是什么3.3 RDD 的 Shuffle 原理Hash base shuffleSort base shuffle3.RDD 的 Shuffle 和分区目标 RDD 的分区操作 Shuffle 的原理...

2019-09-12 09:06:18 550

原创 Spark(二)-- SparkCore扩展 (二) -- RDD算子

目录2.RDD算子2.1 Transformations 算子2.1.1 map: map(T ⇒ U)2.1.2 flatMap(T ⇒ List[U])2.1.3 filter(T ⇒ Boolean)2.1.4 mapPartitions(List[T] ⇒ List[U])2.1.5 mapPartitionsWithIndex2.1.6 mapValues...

2019-09-10 11:22:51 395

原创 Spark(二)-- SparkCore扩展 (一) -- 深入RDD

目录1. 深入 RDD1.1 案例1.2 再谈 RDD1.2.1 RDD 为什么会出现?1.2.2 RDD 的特点1.2.3 什么叫做弹性分布式数据集1. 深入 RDD目标1.深入理解 RDD 的内在逻辑, 以及 RDD 的内部属性(RDD 由什么组成)1.1 案例需求 给定一个网站的访问记录, 俗称 Access log 计算其中...

2019-09-08 13:03:33 338

原创 Spark(一)-- SparkCore(四) -- RDD入门

目录4. RDD 入门4.1 RDD 是什么4.2 RDD 的分区4.3 创建 RDD4.3.1 通过本地集合直接创建 RDD4.3.2 通过读取外部文件创建 RDD4.3.3 通过其它的 RDD 衍生新的 RDD4.4 RDD 算子4.4.1 Map 算子4.4.2 FlatMap 算子4.4.3 ReduceByKey 算子4. RDD 入门...

2019-09-05 22:32:29 417

原创 Spark(一)-- SparkCore(三) -- Spark入门

目录3. Spark 入门3.1 Spark shell 的方式编写 WordCount3.2 读取 HDFS 上的文件3.3 编写独立应用提交 Spark 任务3. Spark 入门目标 通过理解 Spark 小案例, 来理解 Spark 应用 理解编写 Spark 程序的两种常见方式 spark-shell 适合于数据集的探索和测试 ...

2019-09-04 22:28:25 422

原创 Spark(一)-- SparkCore(二) -- Spark 集群搭建

目录2. Spark 集群搭建2.1. Spark 集群结构2.2 Spark 集群搭建2.3 Spark 集群高可用搭建2.4 第一个应用的运行2. Spark 集群搭建目标 从 Spark 的集群架构开始, 理解分布式环境, 以及 Spark 的运行原理 理解 Spark 的集群搭建, 包括高可用的搭建方式 2.1. Spark 集群结构...

2019-09-04 21:27:59 381

原创 Spark(一)-- SparkCore(一) -- Spark概述

学习完scala之后,本周就开始Spark的学习了,Spark是整个大数据学习中,特别特别重要的一个计算框架,由于其的优势,使得现在很多公司都在用Spark,而且对于机器学习也提供了很多的算法支持,所以说这一章节必须好好学!下面列出我们要学习的主要内容:SprakCore的全阶段目标: 理解 Spark 的特点和作用 能够完成 Spark 的集群搭建和安装 通...

2019-09-04 08:47:59 531

原创 Scala编程基础(十二)-- 编程实战(使用Akka实现一个简易版的spark通信框架)

使用Akka实现一个简易版的spark通信框架1.架构图2.具体代码(1)Masterimport akka.actor.{Actor, ActorSystem, Props}import com.typesafe.config.ConfigFactoryimport scala.collection.mutableimport scala.collection.mu...

2019-09-03 09:31:58 222

原创 Scala编程基础(十一)-- 编程实战(利用Akka的actor编程模型,实现2个进程间的通信)

利用Akka的actor编程模型,实现2个进程间的通信。1.架构图2.重要类介绍ActorSystem:在Akka中,ActorSystem是一个重量级的结构,他需要分配多个线程,所以在实际应用中,ActorSystem通常是一个单例对象,我们可以使用这个ActorSystem创建很多Actor。注意:(1)、ActorSystem是一个进程中的老大,它负责创建和监督act...

2019-09-03 09:12:25 416

原创 Scala编程基础(十)-- 编程实战

目录1.课程目标1.1 目标:使用Akka实现一个简易版的spark通信框架2.项目概述2.1 需求2.2 Akka简介1.课程目标 1.1 目标:使用Akka实现一个简易版的spark通信框架 2.项目概述2.1 需求Hivesql----------> select count(*) from user----->整个表只有1...

2019-09-03 08:52:03 313

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除