Spark
文章平均质量分 62
有何不可~
这个作者很懒,什么都没留下…
展开
-
(12)spark sql --操作 Mysql & Hive 代码实现
spark sql --读取 Mysql & Hive 数据MysqlHiveMysqlSpark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。可在启动shell时指定相关的数据库驱动路径,或者将相关的数据库驱动放到spark的类路径下。1)启动spark-shellbin/spark-shell --master spark://hadoop102:7077 [--jars mysq原创 2022-03-03 23:01:40 · 1404 阅读 · 0 评论 -
(10)spark sql 笔记--01基本使用
spark sql 数据结构上下文环境对象DataFrame语法风格DataSetRDD & DataFrame & DataSet 三者 相互转化UDF函数数据结构有两种数据结构:DataFrame: 在原有RDD的基础上 加上一个结构(类似于字段名),如下(数据类型是弱类型,靠spark自动推断)+----+-------+| age| name|+----+-------+|null|Michael|| 30| Andy|| 19| Justin|原创 2022-03-03 22:31:32 · 1685 阅读 · 0 评论 -
(9)累加器 & 广播变量
累加器 & 广播变量累加器为什么要使用累加器如果不使用累加器 求和,如下代码:使用累加器之后累加器怎么使用系统累加器自定义累加器累加器为什么要使用累加器如果不使用累加器 求和,如下代码: val sparkConf = new SparkConf().setMaster("local[*]").setAppName("flatmap") val sc = new SparkContext(sparkConf) val rdd = sc.makeRDD(List(1,2原创 2022-02-28 20:29:23 · 370 阅读 · 0 评论 -
(8)RDD分区器
object spark_mypartitioner { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("flatmap") val sc = new SparkContext(sparkConf) val rdd = sc.makeRDD(List( ("apple","xxx"), ("p原创 2022-02-28 10:56:20 · 291 阅读 · 0 评论 -
(7)RDD缓存 & 检查点
RDD缓存为啥需要缓存将计算结果缓存到内存或磁盘中,供后面重用。因为RDD中不存储数据,如果一个RDD需要重复使用,那么需要从头再次执行来获取数据,所以为了解决这个问题,RDD提供了缓存的方法在数据执行较长,或数据比较重要的场合也可以采用持久化操作。如果数据后续出现问题,就不用从头再执行一遍了,提高了数据的安全性怎么缓存?persist方法 & cache方法使用persist方法或cache方法( 但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD原创 2022-02-27 20:56:25 · 912 阅读 · 0 评论 -
(6)RDD依赖关系
RDD依赖关系Lineage (血缘)依赖关系是两个RDD之间,RDD1用到了 RDD2,那么RDD1依赖于RDD2,血缘就是多个RDD之间的依赖关系。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。 val reduceRdd = sc.textFile("datas/word.txt") .flatMap(_.split(" ")) .map((_, 1)) .r原创 2022-02-27 18:06:19 · 326 阅读 · 0 评论 -
(5)spark RDD 序列化
RDD 序列化从计算的角度, 算子以外的代码都是在Driver端执行, 算子里面的代码都是在Executor端执行。那么在scala的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果。如果使用的算子外的数据无法序列化,就意味着无法传值给Executor端执行,就会发生错误,所以需要在执行任务计算前,检测闭包内的对象是否可以进行序列化,这个操作我们称之为闭包检测。object serializable { def main(args: Array[String]): U原创 2022-02-25 16:46:27 · 580 阅读 · 0 评论 -
(4)spark RDD 算子练习
1)数据准备agent.log:时间戳,省份,城市,用户,广告,中间字段使用空格分隔。2)需求描述统计出每一个省份每个广告被点击数量排行的Top3 /** agent.log: *时间戳,省份,城市,用户,广告,中间字段使用空格分隔。 */ // TODO 需求: 统计出每一个省份 广告被点击数量排行的Top3 val agentRdd = sc.textFile("Input/sparkCore/agent.log") agentRdd原创 2022-02-24 17:33:29 · 728 阅读 · 0 评论 -
(3)spark RDD算子详解
RDD 算子其实就是rdd方法,和scala方法区分开来分为两种 转换算子 和行动算子转换算子功能的补充封装 将旧的RDD包装成新的RDD比如 map flatmapRDD整体上分为Value类型、双Value类型和Key-Value类型map算子 – Value类型每次处理一条数据,对数据或数据类型进行转换 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("lo原创 2022-02-24 15:29:52 · 951 阅读 · 0 评论 -
(2)Spark RDD定义 执行原理
RDD定义RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。spark的最小计算单元RDD,通过组合,让功能越来越强大。装饰者设计模式,逐层的增加功能的扩展。如下图RDD的数据只有在调用collect方法时,才会真正执行业务逻辑操作。之前的都是功能扩展,RDD是不保存数据的。执行原理Spark框架在执行时,先申请资源,然后将应用程序的数据原创 2022-02-18 16:48:53 · 118 阅读 · 0 评论 -
(1)Spark运行架构 核心概念简单理解
运行架构Spark框架的核心是一个计算引擎,它采用了标准 master-slave (主从)的结构。Driver 是master,负责管理整个集群中的作业任务调度,驱使整个应用运行起来的程序。Executor 则是 slave,负责实际执行任务。如图所示:核心概念Executor与Core在提交应用时,可以提供参数指定计算节点的个数,以及对应的资源。这里的资源一般指的是工作节点Executor的内存大小和使用的虚拟CPU核(Core)数量。应用程序相关启动参数如下:–num-execut原创 2022-02-17 16:51:58 · 170 阅读 · 0 评论 -
Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (scala-compile-first
写完代码开开心心。。一打包。卧槽。。。然后半天过去了。。我还在解决这个鬼错误。百度上都是说什么本地scala版本和idea scala版本冲突。。最后心灰意冷,随便点了点。。卧槽。。真正得错误原来在这。。。小菜鸡得一天结束了...原创 2020-10-20 17:36:05 · 3331 阅读 · 9 评论 -
Spark中的RDD
Rdd是弹性分布式数据集,是spark中最基本的计算(逻辑)抽象,它代表一个不可变,可分区,里面的元素可并行计算的集合*1.Rdd弹性*1)存储的弹性:自动进行内存和磁盘数据存储的切换 spark优先把数据放到内存中,如果内存放不下,就会放到磁盘中2)自动切换容错的弹性:基于血统的高容错机制 在Rdd进行转换的时候,会形成rdd依赖链,(即创建第二个rdd时需要使用第一个rdd作为...原创 2019-11-05 21:21:06 · 76 阅读 · 0 评论