从jdbc的角度解读外部数据源
接口首先了解三个trait,分别是BaseRelation、TableScan/PrunedScan/PrunedFilteredScan、InsertableRelation、RelationProvider,他们的功能在源码中解读。 //代表了一个抽象的数据源。该数据源由一行行有着已知schem ...
Read more
RDD转换DadaFrame&使用SQL操作数据源&跨数据源join&SQL与DF与DS的比较&Spark元数据管理: catalog
目录 RDD转换DadaFrame 使用SQL操作数据源 跨数据源join SQL与DF与DS的比较 Spark元数据管理: catalog RDD转换DadaFrame 第一种方式是使用反射来推断包含特定对象类型的RDD的模式 object reflect { def main( ...
Read more
Spark源码之解读spark-shell脚本
该篇文章主要分析一下Spark源码中启动spark-shell脚本的处理逻辑,从spark-shell一步步深入进去看看任务提交的整体流程 spark-shell脚本解读 # 初始化cygwin=falsecygwin=false# 检查你的系统是否属于cygwincase "$(uname)" ...
Read more
Spark中的序列化
在写Spark应用时,常常会碰到序列化的问题。例如,在Driver端的程序中创建了一个对象,而在各个Executor端会用到这个对象——由于Driver端的代码和Executor端的代码在不同的JVM中,甚至在不同的节点上,因此必然要有相应 Java框架进行序列化在默认情况下,Spark会使用Jav ...
Read more
SparkSQL&DataFrame的read和write&SparkSQL做统计分析&UDF函数&存储格式的转换
目录 SparkSQL DataFrame的read和write SparkSQL做统计分析 UDF函数 存储格式的转换 SparkSQL认识SparkSQL SparkSQL的进化之路 1.0以前: Shark1.1.x开始: SparkSQL(只是测试性的) SQL1.3.x: S ...
Read more
Spark之分组TopN模块
在Spark中,分组TopN好写,但是如果想写出性能好的代码却也很难。下面我们将通过写TopN的方式,找出问题,解决问题。 直接reduceByKey完成分组求和排序 def main(args: Array[String]): Unit = { val in = "file:// ...
Read more
经典案例&多目录输出&计数器&持久化&广播变量
目录 经典案例 多目录输出 计数器 持久化 广播变量 经典案例/** * 用户 节目 展示 点击 * 001,一起看|电视剧|军旅|亮剑,1,1 * 001,一起看|电视剧|军旅|亮剑,1,0 * 002,一起看|电视剧|军旅|士兵突击,1,1 * ==> * ...
Read more
Spark之短信告警
下面的案例继续延续Spark监控中的邮件监控,在监控中检测到数据异常,需要发送邮件告警 发送邮件工具类 public class MsgUtils { public static void send(String recivers, String title, String cont ...
Read more
Spark之监控模块
目录 Spark自带监控 Spark接口监控 Spark自定义监控 Spark自带监控第一种监控方式是Spark自带的,由于Spark Web UI界面只在sc的生命周期内有效,所以我们需要存储日志,在Spark sc 生命周期结束后重构UI界面。 首先看官方文档配置,这里只是简单配置 修改sp ...
Read more
Spark术语&Spark提交&YARN上的提交模式&窄依赖&宽依赖
目录 Spark术语 Spark提交 YARN上提交模式 宽依赖 窄依赖 术语下表总结了关于集群概念的术语: Term Meaning Application Spark上的应用程序。由一个driver program和集群上的executors组成。 Application ja ...
Read more