
Spark
文章平均质量分 76
PZ~浪味仙
野蛮生长~无问西东~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Spark机器学习》笔记---Spark的本地安装与配置
一、Spark简介Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写,该框架对资源调度,任务的提交、执行和跟踪,节点间的通信以及数据并行处理的内在底层操作都进行了抽象。它提供了一个更高级别的API用于处理分布式数据。从这方面说,它与Apache Hadoop等分布式处理框架类似。但在底层架构上, Spark与它们有所不同。Spark起源于加利福利亚大学伯克...转载 2018-12-06 21:22:57 · 394 阅读 · 0 评论 -
SparkSQL 学习笔记----案例实战之查询分数大于80分的学生信息
1、Json数据源Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame。可以使用SQLContext.read.json()方法,针对一个元素类型为String的RDD,或者是一个JSON文件。注意:这里使用的JSON文件与传统意义上的JSON文件不同。每行都必须,也只能包含一个单独的、自包含的、有效地JSON对象。不能让一个JSON对象分散在多行...转载 2019-04-26 11:34:29 · 1260 阅读 · 0 评论 -
SparkSQL 学习笔记----Hive数据源实战
1、什么是HiveContextSpark SQL支持对Hive中存储的数据进行读写操作Hive中的数据时,必须创建HiveContext(HiveContext也是已经过时的不推荐使用,嘤嘤嘤~还没学好就已经过时了)。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及HiveSQL语法编写SQL的功能。除了sql()方法,HiveContext还提...转载 2019-04-26 16:19:46 · 250 阅读 · 0 评论 -
SparkSQL 学习笔记----JDBC数据源实战
1、使用jdbc数据源Spark SQL支持使用JDBC从关系型数据库中读取数据。读取的数据又DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。java版本Map<String,String> options = new HashMap<String,String>();options.put("url","jdbc:mysql...转载 2019-04-26 17:40:04 · 218 阅读 · 0 评论 -
SparkSQL 学习笔记----将RDD转换成DataFrame
一、RDD转换成DataFrame1、为什么要将RDD转换成DataFrame转换成DataFrame之后就可以直接针对HDFS等任何可以构建为RDD的数据,进行Spark SQL进行SQL查询了。2、Spark SQL支持两种方式来将RDD转化成DataFrame使用反射来推断包含了特定数据类型的RDD的元数据这种基于反射的方法,代码比较简洁,当你已经知道你的RDD的元数据时,是一种...转载 2019-04-23 11:10:28 · 1019 阅读 · 0 评论 -
SparkSQL 学习笔记----通用的load和save操作
一、通用的load和save操作的作用对于Spark SQL和DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。可以将一份数据load出来,变成一个DataFrame,然后可以对这个DataFrame执行一些查询筛选等操作,然后save到其他路径中。load操作主要用于加载数据,创建出DataFrame;save操作,主要用户将D...转载 2019-04-23 19:54:01 · 519 阅读 · 0 评论 -
SparkSQL 学习笔记----数据源Parquet之使用编程方式加载数据
一、Parquet简介1、whatParquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发2、why列式存储和行式存储相比的优势:可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量压缩源码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(比如Run Length Encoding 和 Delta Encoding)...转载 2019-04-24 16:14:41 · 212 阅读 · 0 评论 -
SparkSQL 学习笔记----自动分区推断
1、表分区表分区是一种常见的优化方式。比如hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同目录中,分区列的值通常就包含在了分区目录的目录名中。SparkSQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列,那么目录结构可能如下所示tableName |- gender=male ...转载 2019-04-25 14:37:53 · 965 阅读 · 0 评论 -
SparkSQL 学习笔记----Parquet数据源之合并元数据
1、使用场景如同ProtocolBuffer,Avro,Thrift一样,Parquet也是支持元数据合并的。用户可以在一开始就定义一个简单的元数据,然后随着业务的需要,逐渐往元数据中添加更多的列。在这种情况下,用户可能会创建多个Parquet文件,有着多个不同的但是却互相兼容的元数据。Parquet数据源支持自动推断出这种情况,并且进行多个Parquet文件的元数据的合并。2、 开启Par...转载 2019-04-25 14:59:44 · 505 阅读 · 0 评论 -
Spark 学习笔记----Spark内核架构深度剖析
一、Spark内核架构1、Application2、spark-submit3、Driver4、SparkContext5、Master6、Worker7、Executor8、 Job9、DAGScheduler10、TaskScheduler11、ShuffleMap Task and Resut Task二、Spark内核运行流程Application: 写完的Spa...转载 2019-03-19 13:34:45 · 353 阅读 · 0 评论 -
Spark 学习笔记----top(n)与groupTop(n)
一、案例需求:1、对文本文件内的数字,取最大的前3个2、对每个班级内的学生成绩,取出前3名(分组取topn)二、top(n)java/** * 案例需求 * 对文本文件内的数字,取最大的前3个 */public class Top_N { public static void main(String[] args) { SparkConf conf =...转载 2019-03-18 11:02:35 · 301 阅读 · 0 评论 -
《Spark机器学习》笔记---Spark集群
Spark集群由两类程序构成:一个驱动程序多个执行程序本地模式:所有的处理都运行在同一个JVM内;集群模式:它们通常运行在不同的节点上。一个采用单机模式的Spark集群(即使用Spark内置的集群管理模块)通常包括:一个运行Spark单机主进程和驱动程序的主节点;各自运行一个执行程序进程的多个工作节点。在本书中,我们将使用Spark的本地单机模式做概念讲解和举例说明,但所用...转载 2018-12-11 19:42:06 · 251 阅读 · 0 评论 -
《Spark机器学习》笔记---Spark编程模型
一、SparkContext类与SparkConf类1. 两个类的作用和关系任何Spark程序的编写都是从SparkContext(或用Java编写时的JavaSparkContext)开始的;SparkContext的初始化需要一个SparkConf对象,后者包含了Spark集群配置的各种参数(比如主节点的URL)。2. 两个类的具体使用初始化后,可用SparkContext对象所...转载 2018-12-11 21:55:24 · 256 阅读 · 0 评论 -
Spark 学习笔记----Transformation操作开发实战
一、Spark常用算子常用的Transformation操作算子主要如下:1、map2、filter3、flatMap4、groupByKey5、reduceByKey6、sortByKey7、join8、cogroup常用的action操作算子主要如下:1、reduce2、collect3、count4、take(n)5、saveAsTextFile6、c...原创 2019-03-14 14:37:31 · 316 阅读 · 0 评论 -
Spark 学习笔记----宽依赖与窄依赖深度剖析
窄依赖: Narrow Dependency。一个RDD,对它的父RDD只有简单的一对一的依赖关系,也就是说RDD的每个partition仅仅依赖于父RDD中的一个partition,父RDD和子RDD的partition之间的对应关系是一对一的;宽依赖: Shuffle Dependency。本质就是Shuffle。也就是说每一个父RDD的partition中的数据,都有可能传输一部分,到下一...转载 2019-03-19 15:06:24 · 183 阅读 · 0 评论 -
Spark 学习笔记----RDD持久化原理
1、RDD持久化的原理Spark非常重要的一个功能特性,就是可以将RDD持久化到内存中,当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并在在之后对该RDD的反复使用中,直接使用内存缓存的partition。这样对于针对一个RDD的反复执行多个操作的场景,就只要对RDD计算一次即可,后面直接使用该RDD,而不需要反复计算多次该RDD。2、RDD持久...转载 2019-03-15 14:45:52 · 1535 阅读 · 0 评论 -
Spark 学习笔记----共享变量
一、共享变量工作原理Spark一个非常重要的特性就是共享变量。默认情况下,如果在一个算子的函数中使用的到了某个外部变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是无法做到的。Spark为此提供了两种共享变量。一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变...转载 2019-03-15 16:21:01 · 520 阅读 · 0 评论 -
Spark 学习笔记----高级编程之基于排序机制的wordcount程序
1、案例需求(1)对文本文件内的内阁单词都统计出其出现的次数(2)按照每个单词出现次数的数量,降序排序2、实战开发java版本/** * 排序的wordcount程序 * */public class SortWordCount { public static void main(String[] args) { //创建SparkConf和JavaS...转载 2019-03-15 17:26:42 · 196 阅读 · 0 评论 -
Spark 学习笔记----Action操作实战
Action算子常用的action操作算子主要如下:1、reduce2、collect3、count4、take(n)5、saveAsTextFile6、countByKey7、foreachjava版本public class ActionOperation { public static void main(String[] args) { //...转载 2019-03-15 17:42:47 · 167 阅读 · 0 评论 -
SparkSQL 学习笔记---SparkStreaming
一、大数据实时计算原理二、Spark Streaming1、SparkStreaming简介Spark Streaming是SparkCore API的一种扩展,可以用于进行大规模,高吞吐,容错的实时数据流的处理,支持从很多数据源中读取数据, 必粗Kafka,FlumeTwitter,ZeroMQ或者是TCP Socket。并且能够使用类似高阶函数的复杂算法来进行数据的处理,比如map、r...转载 2019-05-28 17:28:16 · 272 阅读 · 0 评论