spark
文章平均质量分 68
sj天问
这个作者很懒,什么都没留下…
展开
-
Spark SQL编程
SparkSession新的起始点在老的版本中,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供的SQL查询;一个叫HiveContext,用于连接Hive的查询。SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了SparkContext,所原创 2020-12-10 10:02:02 · 313 阅读 · 0 评论 -
SparkSQL概述
Spark SQL概述什么是Spark SQL为什么要有Spark SQLSpark SQL原理什么是DataFrame1)DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。2)DataFrame与RDD的主要区别在于,DataFrame带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解Person类的内部结构。而右侧的DataF原创 2020-12-09 20:41:40 · 397 阅读 · 0 评论 -
SparkCore 需求样例
1)数据格式思路:分别统计每个品类点击的次数,下单的次数和支付的次数。然后想办法将三个RDD联合到一起。(品类,点击总数)(品类,下单总数)(品类,支付总数)(品类,(点击总数,下单总数,支付总数))然后就可以按照各品类的元组(点击总数,下单总数,支付总数)进行倒序排序了,因为元组排序刚好是先排第一个元素,然后排第二个元素,最后第三个元素。需求实现(方案一)0) 创建包名1) 方案一代码实现方式1(cogroup算子实现满外连接)import org.apache.spark.rdd.RD原创 2020-12-08 21:30:30 · 249 阅读 · 0 评论 -
Spark 广播变量
广播变量广播变量:分布式共享只读变量。广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个Spark Task操作使用。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,广播变量用起来会很顺手。在多个Task并行操作中使用同一个变量,但是Spark会为每个Task任务分别发送。1)使用广播变量步骤:(1)调用SparkContext.broadcast(广播变量)创建出一个广播对象,任何可序列化的类型都可以这么实现。(2)通过广播变量.value,访问该对象的原创 2020-12-07 20:09:31 · 180 阅读 · 0 评论 -
Spark 累加器
累加器累加器:分布式共享只写变量。(Executor和Executor之间不能读数据)累加器用来把Executor端变量信息聚合到Driver端。在Driver中定义的一个变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行合并计算。系统累加器...原创 2020-12-07 20:05:08 · 168 阅读 · 0 评论 -
Spark 键值对RDD数据分区
Spark目前支持Hash分区、Range分区和用户自定义分区。Hash分区为当前的默认分区。分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle后进入哪个分区和Reduce的个数。1)注意:(1)只有Key-Value类型的RDD才有分区器,非Key-Value类型的RDD分区的值是None(2)每个RDD的分区ID范围:0~numPartitions-1,决定这个值是属于那个分区的。2)获取RDD分区代码实现object partitioner01_get { d原创 2020-12-07 19:57:02 · 136 阅读 · 0 评论 -
Spark 数据读取与保存
数据读取与保存Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text文件、Sequence文件以及Object文件;文件系统分为:本地文件系统、HDFS以及数据库。文件类数据读取与保存Text文件1)基本语法(1)数据读取:textFile(String)(2)数据保存:saveAsTextFile(String)2)代码实现object Operate_Text { def main(args: Array[String]): Un原创 2020-12-07 19:25:49 · 365 阅读 · 0 评论 -
Spark RDD CheckPoint检查点
RDD CheckPoint检查点1)检查点:是通过将RDD中间结果写入磁盘。2)为什么要做检查点?由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果检查点之后有节点出现问题,可以从检查点开始重做血缘,减少了开销。3)检查点存储路径:Checkpoint的数据通常是存储在HDFS等容错、高可用的文件系统4)检查点数据存储格式为:二进制的文件5)检查点切断血缘:在Checkpoint的过程中,该RDD的所有依赖于父RDD中的信息将全部被移除。6)检查点触发时间:对RDD进原创 2020-12-07 19:02:49 · 504 阅读 · 0 评论 -
Spark RDD持久化
RDD持久化RDD Cache缓存RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,并供后面重用。1)代码实现object cache01 { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val原创 2020-12-07 18:44:46 · 212 阅读 · 0 评论 -
Spark 算子 Transformation转换算子
Transformation转换算子RDD整体上分为Value类型、双Value类型和Key-Value类型Value类型map()映射具体实现object value01_map { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val conf = new SparkConf().setAppName("SparkCoreTest") .setMast原创 2020-12-04 21:27:49 · 245 阅读 · 0 评论 -
SparkCore分区规则
默认分区源码(RDD数据从集合中创建)1)默认分区数源码解读2)创建一个包3)代码验证import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object partition01_Array_default { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val原创 2020-12-02 18:39:53 · 200 阅读 · 0 评论 -
SparkCore
RDD概述什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。RDD类比工厂生产WordCount工作流程RDD五大特性RDD编程RDD的创建在Spark中创建RDD的创建方式可以分为三种:从集合中创建RDD、从外部存储创建RDD、从其他RDD创建。Maven<dependencies> <d原创 2020-12-02 18:20:17 · 153 阅读 · 0 评论 -
Spark 1
Spark概述什么是Spark回顾:Hadoop主要解决,海量数据的存储和海量数据的分析计算。Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Hadoop与Spark历史Hadoop的Yarn框架比Spark框架诞生的晚,所以Spark自己也设计了一套资源调度框架。Hadoop与Spark框架对比Spark内置模块Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集原创 2020-12-01 19:47:22 · 522 阅读 · 0 评论